diff --git a/.gitignore b/.gitignore index bf8167769e..61918b4b8a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ *.mo authors.txt langs.txt +index.html diff --git a/docs b/docs index 4d6fb78cf1..05aaca417a 160000 --- a/docs +++ b/docs @@ -1 +1 @@ -Subproject commit 4d6fb78cf1f2b270a382213c3c06c09611841283 +Subproject commit 05aaca417aeab993fc98b8f0bc357991d713fede diff --git a/sphinx/templates/about/complying_with_licenses.pot b/sphinx/templates/about/complying_with_licenses.pot index 70247a6356..a61e5195e2 100644 --- a/sphinx/templates/about/complying_with_licenses.pot +++ b/sphinx/templates/about/complying_with_licenses.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/about/docs_changelog.pot b/sphinx/templates/about/docs_changelog.pot index a5b62fb9b2..e6a0bf5cc1 100644 --- a/sphinx/templates/about/docs_changelog.pot +++ b/sphinx/templates/about/docs_changelog.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/about/faq.pot b/sphinx/templates/about/faq.pot index b8086dc4eb..798b7534e3 100644 --- a/sphinx/templates/about/faq.pot +++ b/sphinx/templates/about/faq.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -69,542 +69,550 @@ msgid "**For the editor:**" msgstr "" #: ../../docs/about/faq.rst:38 -#: ../../docs/about/faq.rst:200 +#: ../../docs/about/faq.rst:202 msgid "Windows" msgstr "" #: ../../docs/about/faq.rst:39 -#: ../../docs/about/faq.rst:45 -#: ../../docs/about/faq.rst:211 +#: ../../docs/about/faq.rst:47 +#: ../../docs/about/faq.rst:213 msgid "macOS" msgstr "" #: ../../docs/about/faq.rst:40 -#: ../../docs/about/faq.rst:46 +#: ../../docs/about/faq.rst:48 msgid "X11 (Linux, \\*BSD)" msgstr "" +#: ../../docs/about/faq.rst:41 +msgid ":ref:`Web `" +msgstr "" + #: ../../docs/about/faq.rst:42 -msgid "**For exporting your games:**" +msgid "Android (experimental)" msgstr "" #: ../../docs/about/faq.rst:44 +msgid "**For exporting your games:**" +msgstr "" + +#: ../../docs/about/faq.rst:46 msgid "Windows (and UWP)" msgstr "" -#: ../../docs/about/faq.rst:47 +#: ../../docs/about/faq.rst:49 msgid "Android" msgstr "" -#: ../../docs/about/faq.rst:48 +#: ../../docs/about/faq.rst:50 msgid "iOS" msgstr "" -#: ../../docs/about/faq.rst:49 +#: ../../docs/about/faq.rst:51 msgid "Web" msgstr "" -#: ../../docs/about/faq.rst:51 +#: ../../docs/about/faq.rst:53 msgid "Both 32- and 64-bit binaries are supported where it makes sense, with 64 being the default." msgstr "" -#: ../../docs/about/faq.rst:54 +#: ../../docs/about/faq.rst:56 msgid "Some users also report building and using Godot successfully on ARM-based systems with Linux, like the Raspberry Pi." msgstr "" -#: ../../docs/about/faq.rst:57 +#: ../../docs/about/faq.rst:59 msgid "Additionally, there is some unofficial third-party work being done on building for some consoles. However, none of this is included in the default build scripts or export templates at this time." msgstr "" -#: ../../docs/about/faq.rst:61 +#: ../../docs/about/faq.rst:63 msgid "For more on this, see the sections on :ref:`exporting ` and :ref:`compiling Godot yourself `." msgstr "" -#: ../../docs/about/faq.rst:65 +#: ../../docs/about/faq.rst:67 msgid "Which programming languages are supported in Godot?" msgstr "" -#: ../../docs/about/faq.rst:67 +#: ../../docs/about/faq.rst:69 msgid "The officially supported languages for Godot are GDScript, Visual Scripting, C#, and C++. See the subcategories for each language in the :ref:`scripting ` section." msgstr "" -#: ../../docs/about/faq.rst:71 +#: ../../docs/about/faq.rst:73 msgid "If you are just starting out with either Godot or game development in general, GDScript is the recommended language to learn and use since it is native to Godot. While scripting languages tend to be less performant than lower-level languages in the long run, for prototyping, developing Minimum Viable Products (MVPs), and focusing on Time-To-Market (TTM), GDScript will provide a fast, friendly, and capable way of developing your games." msgstr "" -#: ../../docs/about/faq.rst:78 +#: ../../docs/about/faq.rst:80 msgid "Note that C# support is still relatively new, and as such, you may encounter some issues along the way. Our friendly and hard-working development community is always ready to tackle new problems as they arise, but since this is an open-source project, we recommend that you first do some due diligence yourself. Searching through discussions on `open issues `_ is a great way to start your troubleshooting." msgstr "" -#: ../../docs/about/faq.rst:85 +#: ../../docs/about/faq.rst:87 msgid "As for new languages, support is possible via third parties using the GDNative / NativeScript / PluginScript facilities. (See the question about plugins below.) Work is currently underway, for example, on unofficial bindings for Godot to `Python `_ and `Nim `_." msgstr "" -#: ../../docs/about/faq.rst:93 +#: ../../docs/about/faq.rst:95 msgid "What is GDScript and why should I use it?" msgstr "" -#: ../../docs/about/faq.rst:95 +#: ../../docs/about/faq.rst:97 msgid "GDScript is Godot's integrated scripting language. It was built from the ground up to maximize Godot's potential in the least amount of code, affording both novice and expert developers alike to capitalize on Godot's strengths as fast as possible. If you've ever written anything in a language like Python before then you'll feel right at home. For examples, history, and a complete overview of the power GDScript offers you, check out the :ref:`GDScript scripting guide `." msgstr "" -#: ../../docs/about/faq.rst:102 +#: ../../docs/about/faq.rst:104 msgid "There are several reasons to use GDScript--especially when you are prototyping, in alpha/beta stages of your project, or are not creating the next AAA title--but the most salient reason is the overall **reduction of complexity**." msgstr "" -#: ../../docs/about/faq.rst:106 +#: ../../docs/about/faq.rst:108 msgid "The original intent of creating a tightly integrated, custom scripting language for Godot was two-fold: first, it reduces the amount of time necessary to get up and running with Godot, giving developers a rapid way of exposing themselves to the engine with a focus on productivity; second, it reduces the overall burden of maintenance, attenuates the dimensionality of issues, and allows the developers of the engine to focus on squashing bugs and improving features related to the engine core--rather than spending a lot of time trying to get a small set of incremental features working across a large set of languages." msgstr "" -#: ../../docs/about/faq.rst:114 +#: ../../docs/about/faq.rst:116 msgid "Since Godot is an open-source project, it was imperative from the start to prioritize a more integrated and seamless experience over attracting additional users by supporting more familiar programming languages--especially when supporting those more familiar languages would result in a worse experience. We understand if you would rather use another language in Godot (see the list of supported options above). That being said, if you haven't given GDScript a try, try it for **three days**. Just like Godot, once you see how powerful it is and rapid your development becomes, we think GDScript will grow on you." msgstr "" -#: ../../docs/about/faq.rst:123 +#: ../../docs/about/faq.rst:125 msgid "More information about getting comfortable with GDScript or dynamically typed languages can be found in the :ref:`doc_gdscript_more_efficiently` tutorial." msgstr "" -#: ../../docs/about/faq.rst:127 +#: ../../docs/about/faq.rst:129 msgid "What were the motivations behind creating GDScript?" msgstr "" -#: ../../docs/about/faq.rst:129 +#: ../../docs/about/faq.rst:131 msgid "In the early days, the engine used the `Lua `__ scripting language. Lua is fast, but creating bindings to an object oriented system (by using fallbacks) was complex and slow and took an enormous amount of code. After some experiments with `Python `__, it also proved difficult to embed." msgstr "" -#: ../../docs/about/faq.rst:135 +#: ../../docs/about/faq.rst:137 msgid "The main reasons for creating a custom scripting language for Godot were:" msgstr "" -#: ../../docs/about/faq.rst:137 +#: ../../docs/about/faq.rst:139 msgid "Poor threading support in most script VMs, and Godot uses threads (Lua, Python, Squirrel, JavaScript, ActionScript, etc.)." msgstr "" -#: ../../docs/about/faq.rst:139 +#: ../../docs/about/faq.rst:141 msgid "Poor class-extending support in most script VMs, and adapting to the way Godot works is highly inefficient (Lua, Python, JavaScript)." msgstr "" -#: ../../docs/about/faq.rst:141 +#: ../../docs/about/faq.rst:143 msgid "Many existing languages have horrible interfaces for binding to C++, resulting in large amount of code, bugs, bottlenecks, and general inefficiency (Lua, Python, Squirrel, JavaScript, etc.) We wanted to focus on a great engine, not a great amount of integrations." msgstr "" -#: ../../docs/about/faq.rst:144 +#: ../../docs/about/faq.rst:146 msgid "No native vector types (vector3, matrix4, etc.), resulting in highly reduced performance when using custom types (Lua, Python, Squirrel, JavaScript, ActionScript, etc.)." msgstr "" -#: ../../docs/about/faq.rst:147 +#: ../../docs/about/faq.rst:149 msgid "Garbage collector results in stalls or unnecessarily large memory usage (Lua, Python, JavaScript, ActionScript, etc.)." msgstr "" -#: ../../docs/about/faq.rst:149 +#: ../../docs/about/faq.rst:151 msgid "Difficulty to integrate with the code editor for providing code completion, live editing, etc. (all of them). This is well-supported by GDScript." msgstr "" -#: ../../docs/about/faq.rst:153 +#: ../../docs/about/faq.rst:155 msgid "GDScript was designed to curtail the issues above, and more." msgstr "" -#: ../../docs/about/faq.rst:156 +#: ../../docs/about/faq.rst:158 msgid "What type of 3D model formats does Godot support?" msgstr "" -#: ../../docs/about/faq.rst:158 +#: ../../docs/about/faq.rst:160 msgid "Godot supports Collada via the `OpenCollada `_ exporter (Maya, 3DSMax). If you are using Blender, take a look at our own `Better Collada Exporter `_." msgstr "" -#: ../../docs/about/faq.rst:161 +#: ../../docs/about/faq.rst:163 msgid "As of Godot 3.0, glTF is supported." msgstr "" -#: ../../docs/about/faq.rst:163 +#: ../../docs/about/faq.rst:165 msgid "FBX is supported via the Open Asset Import library. However, FBX is proprietary so we recommend using other formats listed above, if suitable for your workflow." msgstr "" -#: ../../docs/about/faq.rst:167 +#: ../../docs/about/faq.rst:169 msgid "Will [insert closed SDK such as FMOD, GameWorks, etc.] be supported in Godot?" msgstr "" -#: ../../docs/about/faq.rst:169 +#: ../../docs/about/faq.rst:171 msgid "The aim of Godot is to create a free and open-source MIT-licensed engine that is modular and extendable. There are no plans for the core engine development community to support any third-party, closed-source/proprietary SDKs, as integrating with these would go against Godot's ethos." msgstr "" -#: ../../docs/about/faq.rst:174 +#: ../../docs/about/faq.rst:176 msgid "That said, because Godot is open-source and modular, nothing prevents you or anyone else interested in adding those libraries as a module and shipping your game with them--as either open- or closed-source." msgstr "" -#: ../../docs/about/faq.rst:178 +#: ../../docs/about/faq.rst:180 msgid "To see how support for your SDK of choice could still be provided, look at the Plugins question below." msgstr "" -#: ../../docs/about/faq.rst:181 +#: ../../docs/about/faq.rst:183 msgid "If you know of a third-party SDK that is not supported by Godot but that offers free and open-source integration, consider starting the integration work yourself. Godot is not owned by one person; it belongs to the community, and it grows along with ambitious community contributors like you." msgstr "" -#: ../../docs/about/faq.rst:187 +#: ../../docs/about/faq.rst:189 msgid "How do I install the Godot editor on my system (for desktop integration)?" msgstr "" -#: ../../docs/about/faq.rst:189 +#: ../../docs/about/faq.rst:191 msgid "Since you don't need to actually install Godot on your system to run it, this means desktop integration is not performed automatically. There are two ways to overcome this. You can install Godot from `Steam `__ (all platforms), `Scoop `__ (Windows), `Homebrew `__ (macOS) or `Flathub `__ (Linux). This will automatically perform the required steps for desktop integration." msgstr "" -#: ../../docs/about/faq.rst:197 +#: ../../docs/about/faq.rst:199 msgid "Alternatively, you can manually perform the steps that an installer would do for you:" msgstr "" -#: ../../docs/about/faq.rst:202 +#: ../../docs/about/faq.rst:204 msgid "Move the Godot executable to a stable location (i.e. outside of your Downloads folder), so you don't accidentally move it and break the shortcut in the future." msgstr "" -#: ../../docs/about/faq.rst:204 +#: ../../docs/about/faq.rst:206 msgid "Right-click the Godot executable and choose **Create Shortcut**." msgstr "" -#: ../../docs/about/faq.rst:205 +#: ../../docs/about/faq.rst:207 msgid "Move the created shortcut to ``%LOCALAPPDATA%\\Microsoft\\Windows\\Start Menu\\Programs``. This is the user-wide location for shortcuts that will appear in the Start menu. You can also pin Godot in the task bar by right-clicking the executable and choosing **Pin to Task Bar**." msgstr "" -#: ../../docs/about/faq.rst:213 +#: ../../docs/about/faq.rst:215 msgid "Drag the extracted Godot application to ``/Applications/Godot.app``, then drag it to the Dock if desired. Spotlight will be able to find Godot as long as it's in ``/Applications`` or ``~/Applications``." msgstr "" -#: ../../docs/about/faq.rst:218 +#: ../../docs/about/faq.rst:220 msgid "Linux" msgstr "" -#: ../../docs/about/faq.rst:220 +#: ../../docs/about/faq.rst:222 msgid "Move the Godot binary to a stable location (i.e. outside of your Downloads folder), so you don't accidentally move it and break the shortcut in the future." msgstr "" -#: ../../docs/about/faq.rst:222 +#: ../../docs/about/faq.rst:224 msgid "Rename and move the Godot binary to a location present in your ``PATH`` environment variable. This is typically ``/usr/local/bin/godot`` or ``/usr/bin/godot``. Doing this requires administrator privileges, but this also allows you to :ref:`run the Godot editor from a terminal ` by entering ``godot``." msgstr "" -#: ../../docs/about/faq.rst:228 +#: ../../docs/about/faq.rst:230 msgid "If you cannot move the Godot editor binary to a protected location, you can keep the binary somewhere in your home directory, and modify the ``Path=`` line in the ``.desktop`` file linked below to contain the full *absolute* path to the Godot binary." msgstr "" -#: ../../docs/about/faq.rst:233 +#: ../../docs/about/faq.rst:235 msgid "Save `this .desktop file `__ to ``$HOME/.local/share/applications/``. If you have administrator privileges, you can also save the ``.desktop`` file to ``/usr/local/share/applications`` to make the shortcut available for all users." msgstr "" -#: ../../docs/about/faq.rst:239 +#: ../../docs/about/faq.rst:241 msgid "Is the Godot editor a portable application?" msgstr "" -#: ../../docs/about/faq.rst:241 +#: ../../docs/about/faq.rst:243 msgid "In its default configuration, Godot is *semi-portable*. Its executable can run from any location (including non-writable locations) and never requires administrator privileges." msgstr "" -#: ../../docs/about/faq.rst:245 +#: ../../docs/about/faq.rst:247 msgid "However, configuration files will be written to the user-wide configuration or data directory. This is usually a good approach, but this means configuration files will not carry across machines if you copy the folder containing the Godot executable. See :ref:`doc_data_paths` for more information." msgstr "" -#: ../../docs/about/faq.rst:250 +#: ../../docs/about/faq.rst:252 msgid "If *true* portable operation is desired (e.g. for use on an USB stick), follow the steps in :ref:`doc_data_paths_self_contained_mode`." msgstr "" -#: ../../docs/about/faq.rst:254 +#: ../../docs/about/faq.rst:256 msgid "Why does Godot use Vulkan or OpenGL instead of Direct3D?" msgstr "" -#: ../../docs/about/faq.rst:256 +#: ../../docs/about/faq.rst:258 msgid "Godot aims for cross-platform compatibility and open standards first and foremost. OpenGL and Vulkan are the technologies that are both open and available (nearly) on all platforms. Thanks to this design decision, a project developed with Godot on Windows will run out of the box on Linux, macOS, and more." msgstr "" -#: ../../docs/about/faq.rst:262 +#: ../../docs/about/faq.rst:264 msgid "Since Godot only has a few people working on its renderer, we would prefer having fewer rendering backends to maintain. On top of that, using a single API on all platforms allows for greater consistency with fewer platform-specific issues." msgstr "" -#: ../../docs/about/faq.rst:267 +#: ../../docs/about/faq.rst:269 msgid "In the long term, we may develop a Direct3D 12 renderer for Godot (mainly for the Xbox's purposes), but Vulkan and OpenGL will remain the default rendering backends on all platforms, including Windows." msgstr "" -#: ../../docs/about/faq.rst:272 +#: ../../docs/about/faq.rst:274 msgid "Why does Godot aim to keep its core feature set small?" msgstr "" -#: ../../docs/about/faq.rst:274 +#: ../../docs/about/faq.rst:276 msgid "Godot intentionally does not include features that can be implemented by add-ons unless they are used very often. One example of this would be advanced artificial intelligence functionality." msgstr "" -#: ../../docs/about/faq.rst:278 +#: ../../docs/about/faq.rst:280 msgid "There are several reasons for this:" msgstr "" -#: ../../docs/about/faq.rst:280 +#: ../../docs/about/faq.rst:282 msgid "**Code maintenance and surface for bugs.** Every time we accept new code in the Godot repository, existing contributors often take the reponsibility of maintaining it. Some contributors don't always stick around after getting their code merged, which can make it difficult for us to maintain the code in question. This can lead to poorly maintained features with bugs that are never fixed. On top of that, the \"API surface\" that needs to be tested and checked for regressions keeps increasing over time." msgstr "" -#: ../../docs/about/faq.rst:288 +#: ../../docs/about/faq.rst:290 msgid "**Ease of contribution.** By keeping the codebase small and tidy, it can remain fast and easy to compile from source. This makes it easier for new contributors to get started with Godot, without requiring them to purchase high-end hardware." msgstr "" -#: ../../docs/about/faq.rst:293 +#: ../../docs/about/faq.rst:295 msgid "**Keeping the binary size small for the editor.** Not everyone has a fast Internet connection. Ensuring that everyone can download the Godot editor, extract it and run it in less than 5 minutes makes Godot more accessible to developers in all countries." msgstr "" -#: ../../docs/about/faq.rst:298 +#: ../../docs/about/faq.rst:300 msgid "**Keeping the binary size small for export templates.** This directly impacts the size of projects exported with Godot. On mobile and web platforms, keeping file sizes low is primordial to ensure fast installation and loading on underpowered devices. Again, there are many countries where high-speed Internet is not readily available. To add to this, strict data usage caps are often in effect in those countries." msgstr "" -#: ../../docs/about/faq.rst:305 -msgid "For all the reasons above, we have to be selective of what we can accept as core functionality in Godot. This is why we are aiming to move some core functionality to officially supported add-ons in future versions of Godot. In terms of binary size, this also has the advance of making you pay only for what you actually use in your project. (In the meantime, you can :ref:`compile custom export templates with unused features disabled ` to optimize the distribution size of your project.)" -msgstr "" - -#: ../../docs/about/faq.rst:314 -msgid "How should assets be created to handle multiple resolutions and aspect ratios?" +#: ../../docs/about/faq.rst:307 +msgid "For all the reasons above, we have to be selective of what we can accept as core functionality in Godot. This is why we are aiming to move some core functionality to officially supported add-ons in future versions of Godot. In terms of binary size, this also has the advantage of making you pay only for what you actually use in your project. (In the meantime, you can :ref:`compile custom export templates with unused features disabled ` to optimize the distribution size of your project.)" msgstr "" #: ../../docs/about/faq.rst:316 +msgid "How should assets be created to handle multiple resolutions and aspect ratios?" +msgstr "" + +#: ../../docs/about/faq.rst:318 msgid "This question pops up often and it's probably thanks to the misunderstanding created by Apple when they originally doubled the resolution of their devices. It made people think that having the same assets in different resolutions was a good idea, so many continued towards that path. That originally worked to a point and only for Apple devices, but then several Android and Apple devices with different resolutions and aspect ratios were created, with a very wide range of sizes and DPIs." msgstr "" -#: ../../docs/about/faq.rst:324 +#: ../../docs/about/faq.rst:326 msgid "The most common and proper way to achieve this is to, instead, use a single base resolution for the game and only handle different screen aspect ratios. This is mostly needed for 2D, as in 3D it's just a matter of Camera XFov or YFov." msgstr "" -#: ../../docs/about/faq.rst:328 +#: ../../docs/about/faq.rst:330 msgid "Choose a single base resolution for your game. Even if there are devices that go up to 2K and devices that go down to 400p, regular hardware scaling in your device will take care of this at little or no performance cost. Most common choices are either near 1080p (1920x1080) or 720p (1280x720). Keep in mind the higher the resolution, the larger your assets, the more memory they will take and the longer the time it will take for loading." msgstr "" -#: ../../docs/about/faq.rst:336 +#: ../../docs/about/faq.rst:338 msgid "Use the stretch options in Godot; 2D stretching while keeping aspect ratios works best. Check the :ref:`doc_multiple_resolutions` tutorial on how to achieve this." msgstr "" -#: ../../docs/about/faq.rst:340 +#: ../../docs/about/faq.rst:342 msgid "Determine a minimum resolution and then decide if you want your game to stretch vertically or horizontally for different aspect ratios, or if there is one aspect ratio and you want black bars to appear instead. This is also explained in :ref:`doc_multiple_resolutions`." msgstr "" -#: ../../docs/about/faq.rst:345 +#: ../../docs/about/faq.rst:347 msgid "For user interfaces, use the :ref:`anchoring ` to determine where controls should stay and move. If UIs are more complex, consider learning about Containers." msgstr "" -#: ../../docs/about/faq.rst:349 +#: ../../docs/about/faq.rst:351 msgid "And that's it! Your game should work in multiple resolutions." msgstr "" -#: ../../docs/about/faq.rst:351 +#: ../../docs/about/faq.rst:353 msgid "If there is a desire to make your game also work on ancient devices with tiny screens (fewer than 300 pixels in width), you can use the export option to shrink images, and set that build to be used for certain screen sizes in the App Store or Google Play." msgstr "" -#: ../../docs/about/faq.rst:357 +#: ../../docs/about/faq.rst:359 msgid "How can I extend Godot?" msgstr "" -#: ../../docs/about/faq.rst:359 +#: ../../docs/about/faq.rst:361 msgid "For extending Godot, like creating Godot Editor plugins or adding support for additional languages, take a look at :ref:`EditorPlugins ` and tool scripts." msgstr "" -#: ../../docs/about/faq.rst:363 +#: ../../docs/about/faq.rst:365 msgid "Also, see the official blog posts on these topics:" msgstr "" -#: ../../docs/about/faq.rst:365 +#: ../../docs/about/faq.rst:367 msgid "`A look at the GDNative architecture `_" msgstr "" -#: ../../docs/about/faq.rst:366 +#: ../../docs/about/faq.rst:368 msgid "`GDNative is here! `_" msgstr "" -#: ../../docs/about/faq.rst:368 +#: ../../docs/about/faq.rst:370 msgid "You can also take a look at the GDScript implementation, the Godot modules, as well as the `unofficial Python support `_ for Godot. This would be a good starting point to see how another third-party library integrates with Godot." msgstr "" -#: ../../docs/about/faq.rst:374 +#: ../../docs/about/faq.rst:376 msgid "When is the next release of Godot out?" msgstr "" -#: ../../docs/about/faq.rst:376 +#: ../../docs/about/faq.rst:378 msgid "When it's ready! See :ref:`doc_release_policy_when_is_next_release_out` for more information." msgstr "" -#: ../../docs/about/faq.rst:380 +#: ../../docs/about/faq.rst:382 msgid "I would like to contribute! How can I get started?" msgstr "" -#: ../../docs/about/faq.rst:382 +#: ../../docs/about/faq.rst:384 msgid "Awesome! As an open-source project, Godot thrives off of the innovation and ambition of developers like you." msgstr "" -#: ../../docs/about/faq.rst:385 +#: ../../docs/about/faq.rst:387 msgid "The first place to get started is in the `issues `_. Find an issue that resonates with you, then proceed to the `How to Contribute `_ guide to learn how to fork, modify, and submit a Pull Request (PR) with your changes." msgstr "" -#: ../../docs/about/faq.rst:390 +#: ../../docs/about/faq.rst:392 msgid "I have a great idea for Godot. How can I share it?" msgstr "" -#: ../../docs/about/faq.rst:392 +#: ../../docs/about/faq.rst:394 msgid "It might be tempting to want to bring ideas to Godot, like ones that result in massive core changes, some sort of mimicry of what another game engine does, or alternative workflows that you'd like built into the editor. These are great, and we are thankful to have such motivated people want to contribute, but Godot's focus is and always will be the core functionality as outlined in the `Roadmap `_, `squashing bugs and addressing issues `_, and conversations between Godot community members." msgstr "" -#: ../../docs/about/faq.rst:401 +#: ../../docs/about/faq.rst:403 msgid "Most developers in the Godot community will be more interested to learn about things like:" msgstr "" -#: ../../docs/about/faq.rst:404 +#: ../../docs/about/faq.rst:406 msgid "Your experience using the software and the problems you have (we care about this much more than ideas on how to improve it)." msgstr "" -#: ../../docs/about/faq.rst:406 +#: ../../docs/about/faq.rst:408 msgid "The features you would like to see implemented because you need them for your project." msgstr "" -#: ../../docs/about/faq.rst:408 +#: ../../docs/about/faq.rst:410 msgid "The concepts that were difficult to understand while learning the software." msgstr "" -#: ../../docs/about/faq.rst:409 +#: ../../docs/about/faq.rst:411 msgid "The parts of your workflow you would like to see optimized." msgstr "" -#: ../../docs/about/faq.rst:410 +#: ../../docs/about/faq.rst:412 msgid "Parts where you missed clear tutorials or where the documentation wasn't clear." msgstr "" -#: ../../docs/about/faq.rst:412 +#: ../../docs/about/faq.rst:414 msgid "Please don't feel like your ideas for Godot are unwelcome. Instead, try to reformulate them as a problem first, so developers and the community have a functional foundation to ground your ideas on." msgstr "" -#: ../../docs/about/faq.rst:416 +#: ../../docs/about/faq.rst:418 msgid "A good way to approach sharing your ideas and problems with the community is as a set of user stories. Explain what you are trying to do, what behavior you expect to happen, and then what behavior actually happened. Framing problems and ideas this way will help the whole community stay focused on improving developer experiences as a whole." msgstr "" -#: ../../docs/about/faq.rst:422 +#: ../../docs/about/faq.rst:424 msgid "Bonus points for bringing screenshots, concrete numbers, test cases, or example projects (if applicable)." msgstr "" -#: ../../docs/about/faq.rst:428 +#: ../../docs/about/faq.rst:430 msgid "Is it possible to use Godot to create non-game applications?" msgstr "" -#: ../../docs/about/faq.rst:430 +#: ../../docs/about/faq.rst:432 msgid "Yes! Godot features an extensive built-in UI system, and its small distribution size can make it a suitable alternative to frameworks like Electron or Qt." msgstr "" -#: ../../docs/about/faq.rst:433 +#: ../../docs/about/faq.rst:435 msgid "When creating a non-game application, make sure to enable :ref:`low-processor mode ` in the Project Settings to decrease CPU and GPU usage." msgstr "" -#: ../../docs/about/faq.rst:437 +#: ../../docs/about/faq.rst:439 msgid "That said, we wouldn't recommend using Godot to create a *mobile* application since low-processor mode isn't supported on mobile platforms yet." msgstr "" -#: ../../docs/about/faq.rst:440 +#: ../../docs/about/faq.rst:442 msgid "Check out `Material Maker `__ and `Pixelorama `__ for examples of open source applications made with Godot." msgstr "" -#: ../../docs/about/faq.rst:447 +#: ../../docs/about/faq.rst:449 msgid "Is it possible to use Godot as a library?" msgstr "" -#: ../../docs/about/faq.rst:449 +#: ../../docs/about/faq.rst:451 msgid "Godot is meant to be used with its editor. We recommend you give it a try, as it will most likely save you time in the long term. There are no plans to make Godot usable as a library, as it would make the rest of the engine more convoluted and difficult to use for casual users." msgstr "" -#: ../../docs/about/faq.rst:454 +#: ../../docs/about/faq.rst:456 msgid "If you want to use a rendering library, look into using an established rendering engine instead. Keep in mind rendering engines usually have smaller communities compared to Godot. This will make it more difficult to find answers to your questions." msgstr "" -#: ../../docs/about/faq.rst:460 +#: ../../docs/about/faq.rst:462 msgid "What user interface toolkit does Godot use?" msgstr "" -#: ../../docs/about/faq.rst:462 +#: ../../docs/about/faq.rst:464 msgid "Godot does not use a standard :abbr:`GUI (Graphical User Interface)` toolkit like GTK, Qt or wxWidgets. Instead, Godot uses its own user interface toolkit, rendered using OpenGL ES or Vulkan. This toolkit is exposed in the form of Control nodes, which are used to render the editor (which is written in C++). These Control nodes can also be used in projects from any scripting language supported by Godot." msgstr "" -#: ../../docs/about/faq.rst:469 +#: ../../docs/about/faq.rst:471 msgid "This custom toolkit makes it possible to benefit from hardware acceleration and have a consistent appearance across all platforms. On top of that, it doesn't have to deal with the LGPL licensing caveats that come with GTK or Qt. Lastly, this means Godot is \"eating its own dog food\" since the editor itself is one of the most complex users of Godot's UI system." msgstr "" -#: ../../docs/about/faq.rst:475 +#: ../../docs/about/faq.rst:477 msgid "This custom UI toolkit :ref:`can't be used as a library `, but you can still :ref:`use Godot to create non-game applications by using the editor `." msgstr "" -#: ../../docs/about/faq.rst:482 +#: ../../docs/about/faq.rst:484 msgid "Why does Godot not use STL (Standard Template Library)?" msgstr "" -#: ../../docs/about/faq.rst:484 +#: ../../docs/about/faq.rst:486 msgid "Like many other libraries (Qt as an example), Godot does not make use of STL. We believe STL is a great general purpose library, but we had special requirements for Godot." msgstr "" -#: ../../docs/about/faq.rst:488 +#: ../../docs/about/faq.rst:490 msgid "STL templates create very large symbols, which results in huge debug binaries. We use few templates with very short names instead." msgstr "" -#: ../../docs/about/faq.rst:489 +#: ../../docs/about/faq.rst:491 msgid "Most of our containers cater to special needs, like Vector, which uses copy on write and we use to pass data around, or the RID system, which requires O(1) access time for performance. Likewise, our hash map implementations are designed to integrate seamlessly with internal engine types." msgstr "" -#: ../../docs/about/faq.rst:490 +#: ../../docs/about/faq.rst:492 msgid "Our containers have memory tracking built-in, which helps better track memory usage." msgstr "" -#: ../../docs/about/faq.rst:491 +#: ../../docs/about/faq.rst:493 msgid "For large arrays, we use pooled memory, which can be mapped to either a preallocated buffer or virtual memory." msgstr "" -#: ../../docs/about/faq.rst:492 +#: ../../docs/about/faq.rst:494 msgid "We use our custom String type, as the one provided by STL is too basic and lacks proper internationalization support." msgstr "" -#: ../../docs/about/faq.rst:495 +#: ../../docs/about/faq.rst:497 msgid "Why does Godot not use exceptions?" msgstr "" -#: ../../docs/about/faq.rst:497 +#: ../../docs/about/faq.rst:499 msgid "We believe games should not crash, no matter what. If an unexpected situation happens, Godot will print an error (which can be traced even to script), but then it will try to recover as gracefully as possible and keep going." msgstr "" -#: ../../docs/about/faq.rst:502 +#: ../../docs/about/faq.rst:504 msgid "Additionally, exceptions significantly increase binary size for the executable." msgstr "" -#: ../../docs/about/faq.rst:506 +#: ../../docs/about/faq.rst:508 msgid "Why does Godot not enforce RTTI?" msgstr "" -#: ../../docs/about/faq.rst:508 +#: ../../docs/about/faq.rst:510 msgid "Godot provides its own type-casting system, which can optionally use RTTI internally. Disabling RTTI in Godot means considerably smaller binary sizes can be achieved, at a little performance cost." msgstr "" -#: ../../docs/about/faq.rst:513 +#: ../../docs/about/faq.rst:515 msgid "Why does Godot not force users to implement DoD (Data oriented Design)?" msgstr "" -#: ../../docs/about/faq.rst:515 +#: ../../docs/about/faq.rst:517 msgid "While Godot internally for a lot of the heavy performance tasks attempts to use cache coherency as well as possible, we believe most users don't really need to be forced to use DoD practices." msgstr "" -#: ../../docs/about/faq.rst:519 +#: ../../docs/about/faq.rst:521 msgid "DoD is mostly a cache coherency optimization that can only gain you significant performance improvements when dealing with dozens of thousands of objects (which are processed every frame with little modification). As in, if you are moving a few hundred sprites or enemies per frame, DoD won't help you, and you should consider a different approach to optimization." msgstr "" -#: ../../docs/about/faq.rst:526 +#: ../../docs/about/faq.rst:528 msgid "The vast majority of games do not need this and Godot provides handy helpers to do the job for most cases when you do." msgstr "" -#: ../../docs/about/faq.rst:529 +#: ../../docs/about/faq.rst:531 msgid "If a game that really needs to process such large amount of objects is needed, our recommendation is to use C++ and GDNative for the high performance parts and GDScript (or C#) for the rest of the game." msgstr "" -#: ../../docs/about/faq.rst:534 +#: ../../docs/about/faq.rst:536 msgid "How can I support Godot development or contribute?" msgstr "" -#: ../../docs/about/faq.rst:536 +#: ../../docs/about/faq.rst:538 msgid "See :ref:`doc_ways_to_contribute`." msgstr "" -#: ../../docs/about/faq.rst:539 +#: ../../docs/about/faq.rst:541 msgid "Who is working on Godot? How can I contact you?" msgstr "" -#: ../../docs/about/faq.rst:541 +#: ../../docs/about/faq.rst:543 msgid "See the corresponding page on the `Godot website `_." msgstr "" diff --git a/sphinx/templates/about/index.pot b/sphinx/templates/about/index.pot index b8c926b0af..ffa09775e0 100644 --- a/sphinx/templates/about/index.pot +++ b/sphinx/templates/about/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/about/introduction.pot b/sphinx/templates/about/introduction.pot index fb314880b3..f7b342544f 100644 --- a/sphinx/templates/about/introduction.pot +++ b/sphinx/templates/about/introduction.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/about/list_of_features.pot b/sphinx/templates/about/list_of_features.pot index fb2227a9e2..341226e7ff 100644 --- a/sphinx/templates/about/list_of_features.pot +++ b/sphinx/templates/about/list_of_features.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -25,7 +25,7 @@ msgid "This page aims to list all features currently supported by Godot." msgstr "" #: ../../docs/about/list_of_features.rst:10 -msgid "This page lists features supported by the current stable version of Godot (3.4). `More features `__ are available in the latest development version (4.0)." +msgid "This page lists features supported by the current stable version of Godot (3.5). `More features `__ are available in the latest development version (4.0)." msgstr "" #: ../../docs/about/list_of_features.rst:15 @@ -94,7 +94,7 @@ msgstr "" #: ../../docs/about/list_of_features.rst:45 #: ../../docs/about/list_of_features.rst:93 -#: ../../docs/about/list_of_features.rst:385 +#: ../../docs/about/list_of_features.rst:395 msgid "**Features:**" msgstr "" @@ -151,23 +151,23 @@ msgid "Move the in-editor camera and see the result in the running project." msgstr "" #: ../../docs/about/list_of_features.rst:68 +msgid "Built-in offline class reference documentation." +msgstr "" + +#: ../../docs/about/list_of_features.rst:69 msgid "Use the editor in dozens of languages contributed by the community." msgstr "" -#: ../../docs/about/list_of_features.rst:70 +#: ../../docs/about/list_of_features.rst:71 msgid "**Plugins:**" msgstr "" -#: ../../docs/about/list_of_features.rst:72 +#: ../../docs/about/list_of_features.rst:73 msgid "Editor plugins can be downloaded from the :ref:`asset library ` to extend editor functionality." msgstr "" -#: ../../docs/about/list_of_features.rst:74 -msgid ":ref:`Create your own plugins ` using GDScript to add new" -msgstr "" - #: ../../docs/about/list_of_features.rst:75 -msgid "Download projects from the asset library in the project manager and import them directly. features or speed up your workflow." +msgid ":ref:`Create your own plugins ` using GDScript to add new features or speed up your workflow." msgstr "" #: ../../docs/about/list_of_features.rst:77 @@ -240,7 +240,7 @@ msgid "Bitmap fonts can be exported using tools like BMFont." msgstr "" #: ../../docs/about/list_of_features.rst:111 -msgid "DynamicFont supports monochrome fonts as well as colored fonts (e.g. for emoji). Supported formats are TTF, OTF and WOFF1." +msgid "DynamicFont supports monochrome fonts as well as colored fonts (e.g. for emoji). Supported formats are TTF, OTF, WOFF1 and WOFF2." msgstr "" #: ../../docs/about/list_of_features.rst:113 @@ -256,7 +256,7 @@ msgid "GPU-based particles with support for custom particle shaders." msgstr "" #: ../../docs/about/list_of_features.rst:117 -#: ../../docs/about/list_of_features.rst:245 +#: ../../docs/about/list_of_features.rst:244 msgid "CPU-based particles." msgstr "" @@ -540,7 +540,7 @@ msgstr "" msgid "**Particles:**" msgstr "" -#: ../../docs/about/list_of_features.rst:244 +#: ../../docs/about/list_of_features.rst:245 msgid "*GLES3:* GPU-based particles with support for custom particle shaders." msgstr "" @@ -553,33 +553,33 @@ msgid "Tonemapping (Linear, Reinhard, Filmic, ACES)." msgstr "" #: ../../docs/about/list_of_features.rst:250 -msgid "*GLES3:* Automatic exposure adjustments based on viewport brightness." -msgstr "" - -#: ../../docs/about/list_of_features.rst:251 -msgid "*GLES3:* Near and far depth of field." -msgstr "" - -#: ../../docs/about/list_of_features.rst:252 -msgid "*GLES3:* Screen-space ambient occlusion." -msgstr "" - -#: ../../docs/about/list_of_features.rst:253 -msgid "*GLES3:* Optional debanding to avoid color banding (effective when HDR rendering is enabled)." -msgstr "" - -#: ../../docs/about/list_of_features.rst:254 msgid "Glow/bloom with optional bicubic upscaling and several blend modes available: Screen, Soft Light, Add, Replace." msgstr "" -#: ../../docs/about/list_of_features.rst:256 +#: ../../docs/about/list_of_features.rst:252 msgid "Color correction using an one-dimensional ramp." msgstr "" -#: ../../docs/about/list_of_features.rst:257 +#: ../../docs/about/list_of_features.rst:253 msgid "Brightness, contrast and saturation adjustments." msgstr "" +#: ../../docs/about/list_of_features.rst:254 +msgid "*GLES3:* Automatic exposure adjustments based on viewport brightness." +msgstr "" + +#: ../../docs/about/list_of_features.rst:255 +msgid "*GLES3:* Near and far depth of field." +msgstr "" + +#: ../../docs/about/list_of_features.rst:256 +msgid "*GLES3:* Screen-space ambient occlusion (SSAO)." +msgstr "" + +#: ../../docs/about/list_of_features.rst:257 +msgid "*GLES3:* Optional debanding to avoid color banding (effective when HDR rendering is enabled)." +msgstr "" + #: ../../docs/about/list_of_features.rst:259 msgid "**Texture filtering:**" msgstr "" @@ -633,7 +633,7 @@ msgid "Occlusion culling with :ref:`rooms and portals `. msgstr "" #: ../../docs/about/list_of_features.rst:281 -msgid "Real-time occluder spheres. Not as effective as rooms and portals (and doesn't support gameplay notifications), but easier to set up." +msgid "Real-time occluder shapes (sphere and polygon). Not as effective as rooms and portals (and doesn't support gameplay notifications), but easier to set up." msgstr "" #: ../../docs/about/list_of_features.rst:286 @@ -828,591 +828,595 @@ msgstr "" msgid "Maintained D, Kotlin, Python, Nim, and Rust bindings provided by the community." msgstr "" -#: ../../docs/about/list_of_features.rst:383 -msgid "Audio" -msgstr "" - -#: ../../docs/about/list_of_features.rst:387 -msgid "Mono, stereo, 5.1 and 7.1 output." +#: ../../docs/about/list_of_features.rst:384 +msgid "`Godot 4.0 will remove VisualScript from core entirely. `__ As a result, creating new projects using visual scripting in Godot is not recommended. Future Godot 4.x releases may have VisualScript reimplemented as an extension." msgstr "" #: ../../docs/about/list_of_features.rst:388 -msgid "Non-positional and positional playback in 2D and 3D." +msgid "While Godot 3.x will keep VisualScript supported, we recommend :ref:`trying out GDScript ` instead, especially if you intend to migrate your project to Godot 4." msgstr "" -#: ../../docs/about/list_of_features.rst:390 -msgid "Optional Doppler effect in 2D and 3D." +#: ../../docs/about/list_of_features.rst:393 +msgid "Audio" msgstr "" -#: ../../docs/about/list_of_features.rst:392 -msgid "Support for re-routable :ref:`audio buses ` and effects with dozens of effects included." -msgstr "" - -#: ../../docs/about/list_of_features.rst:394 -msgid "Listener2D and Listener3D nodes to listen from a position different than the camera." -msgstr "" - -#: ../../docs/about/list_of_features.rst:395 -msgid "Audio input to record microphones with real-time access using the AudioEffectCapture class." -msgstr "" - -#: ../../docs/about/list_of_features.rst:396 -msgid "MIDI input." +#: ../../docs/about/list_of_features.rst:397 +msgid "Mono, stereo, 5.1 and 7.1 output." msgstr "" #: ../../docs/about/list_of_features.rst:398 -msgid "No support for MIDI output yet." +msgid "Non-positional and positional playback in 2D and 3D." msgstr "" #: ../../docs/about/list_of_features.rst:400 -msgid "**APIs used:**" +msgid "Optional Doppler effect in 2D and 3D." msgstr "" #: ../../docs/about/list_of_features.rst:402 -msgid "*Windows:* WASAPI." -msgstr "" - -#: ../../docs/about/list_of_features.rst:403 -msgid "*macOS:* CoreAudio." +msgid "Support for re-routable :ref:`audio buses ` and effects with dozens of effects included." msgstr "" #: ../../docs/about/list_of_features.rst:404 -msgid "*Linux:* PulseAudio or ALSA." +msgid "Listener2D and Listener3D nodes to listen from a position different than the camera." msgstr "" -#: ../../docs/about/list_of_features.rst:407 -msgid "Import" +#: ../../docs/about/list_of_features.rst:405 +msgid "Audio input to record microphones with real-time access using the AudioEffectCapture class." msgstr "" -#: ../../docs/about/list_of_features.rst:409 -msgid "Support for :ref:`custom import plugins `." +#: ../../docs/about/list_of_features.rst:406 +msgid "MIDI input." msgstr "" -#: ../../docs/about/list_of_features.rst:411 -msgid "**Formats:**" +#: ../../docs/about/list_of_features.rst:408 +msgid "No support for MIDI output yet." +msgstr "" + +#: ../../docs/about/list_of_features.rst:410 +msgid "**APIs used:**" +msgstr "" + +#: ../../docs/about/list_of_features.rst:412 +msgid "*Windows:* WASAPI." msgstr "" #: ../../docs/about/list_of_features.rst:413 -msgid "*Images:* See :ref:`doc_import_images`." +msgid "*macOS:* CoreAudio." msgstr "" #: ../../docs/about/list_of_features.rst:414 -msgid "*Audio:*" -msgstr "" - -#: ../../docs/about/list_of_features.rst:416 -msgid "WAV with optional IMA-ADPCM compression." +msgid "*Linux:* PulseAudio or ALSA." msgstr "" #: ../../docs/about/list_of_features.rst:417 -msgid "Ogg Vorbis." +msgid "Import" msgstr "" -#: ../../docs/about/list_of_features.rst:418 -msgid "MP3." +#: ../../docs/about/list_of_features.rst:419 +msgid "Support for :ref:`custom import plugins `." msgstr "" -#: ../../docs/about/list_of_features.rst:420 -msgid "*3D scenes:*" -msgstr "" - -#: ../../docs/about/list_of_features.rst:422 -msgid "glTF 2.0 *(recommended)*." +#: ../../docs/about/list_of_features.rst:421 +msgid "**Formats:**" msgstr "" #: ../../docs/about/list_of_features.rst:423 -msgid "`ESCN `__ (direct export from Blender)." +msgid "*Images:* See :ref:`doc_import_images`." msgstr "" -#: ../../docs/about/list_of_features.rst:425 -msgid "FBX (experimental, static meshes only)." +#: ../../docs/about/list_of_features.rst:424 +msgid "*Audio:*" msgstr "" #: ../../docs/about/list_of_features.rst:426 -msgid "Collada (.dae)." +msgid "WAV with optional IMA-ADPCM compression." msgstr "" #: ../../docs/about/list_of_features.rst:427 -msgid "Wavefront OBJ (static scenes only, can be loaded directly as a mesh)." +msgid "Ogg Vorbis." msgstr "" -#: ../../docs/about/list_of_features.rst:429 -msgid "3D meshes use `Mikktspace `__ to generate tangents on import, which ensures consistency with other 3D applications such as Blender." +#: ../../docs/about/list_of_features.rst:428 +msgid "MP3." +msgstr "" + +#: ../../docs/about/list_of_features.rst:430 +msgid "*3D scenes:*" +msgstr "" + +#: ../../docs/about/list_of_features.rst:432 +msgid "glTF 2.0 *(recommended)*." msgstr "" #: ../../docs/about/list_of_features.rst:433 -msgid "Input" +msgid "`ESCN `__ (direct export from Blender)." msgstr "" #: ../../docs/about/list_of_features.rst:435 -msgid "Input mapping system using hardcoded input events or remappable input actions." +msgid "FBX (experimental, static meshes only)." +msgstr "" + +#: ../../docs/about/list_of_features.rst:436 +msgid "Collada (.dae)." msgstr "" #: ../../docs/about/list_of_features.rst:437 -msgid "Axis values can be mapped to two different actions with a configurable deadzone." +msgid "Wavefront OBJ (static scenes only, can be loaded directly as a mesh)." msgstr "" -#: ../../docs/about/list_of_features.rst:438 -msgid "Use the same code to support both keyboards and gamepads." +#: ../../docs/about/list_of_features.rst:439 +msgid "3D meshes use `Mikktspace `__ to generate tangents on import, which ensures consistency with other 3D applications such as Blender." msgstr "" -#: ../../docs/about/list_of_features.rst:440 -msgid "Keyboard input." +#: ../../docs/about/list_of_features.rst:443 +msgid "Input" msgstr "" -#: ../../docs/about/list_of_features.rst:442 -msgid "Keys can be mapped in \"physical\" mode to be independent of the keyboard layout." -msgstr "" - -#: ../../docs/about/list_of_features.rst:444 -msgid "Mouse input." -msgstr "" - -#: ../../docs/about/list_of_features.rst:446 -msgid "The mouse cursor can be visible, hidden, captured or confined within the window." +#: ../../docs/about/list_of_features.rst:445 +msgid "Input mapping system using hardcoded input events or remappable input actions." msgstr "" #: ../../docs/about/list_of_features.rst:447 -msgid "When captured, raw input will be used on Windows and Linux to sidestep the OS' mouse acceleration settings." +msgid "Axis values can be mapped to two different actions with a configurable deadzone." +msgstr "" + +#: ../../docs/about/list_of_features.rst:448 +msgid "Use the same code to support both keyboards and gamepads." msgstr "" #: ../../docs/about/list_of_features.rst:450 -msgid "Gamepad input (up to 8 simultaneous controllers)." -msgstr "" - -#: ../../docs/about/list_of_features.rst:451 -msgid "Pen/tablet input with pressure support." +msgid "Keyboard input." msgstr "" #: ../../docs/about/list_of_features.rst:452 -msgid "Gamepad, keyboard and mouse input support are also available on Android." +msgid "Keys can be mapped in \"physical\" mode to be independent of the keyboard layout." msgstr "" -#: ../../docs/about/list_of_features.rst:455 -msgid "Navigation" +#: ../../docs/about/list_of_features.rst:454 +msgid "Mouse input." +msgstr "" + +#: ../../docs/about/list_of_features.rst:456 +msgid "The mouse cursor can be visible, hidden, captured or confined within the window." msgstr "" #: ../../docs/about/list_of_features.rst:457 -msgid "A* algorithm in 2D and 3D." -msgstr "" - -#: ../../docs/about/list_of_features.rst:458 -msgid "Navigation meshes." +msgid "When captured, raw input will be used on Windows and Linux to sidestep the OS' mouse acceleration settings." msgstr "" #: ../../docs/about/list_of_features.rst:460 -msgid "Support for dynamic obstacle avoidance planned in Godot 4.0." +msgid "Gamepad input (up to 8 simultaneous controllers)." +msgstr "" + +#: ../../docs/about/list_of_features.rst:461 +msgid "Pen/tablet input with pressure support." msgstr "" #: ../../docs/about/list_of_features.rst:462 -msgid "Generate navigation meshes from the editor." +msgid "Gamepad, keyboard and mouse input support are also available on Android." msgstr "" #: ../../docs/about/list_of_features.rst:465 -msgid "Networking" +msgid "Navigation" msgstr "" #: ../../docs/about/list_of_features.rst:467 -msgid "Low-level TCP networking using StreamPeer and TCP_Server." +msgid "A* algorithm in 2D and 3D." msgstr "" #: ../../docs/about/list_of_features.rst:468 -msgid "Low-level UDP networking using PacketPeer and UDPServer." +msgid "Navigation meshes with dynamic obstacle avoidance." msgstr "" #: ../../docs/about/list_of_features.rst:469 -msgid "Low-level HTTP requests using HTTPClient." -msgstr "" - -#: ../../docs/about/list_of_features.rst:470 -msgid "High-level HTTP requests using HTTPRequest." +msgid "Generate navigation meshes from the editor or at run-time (including from an exported project)." msgstr "" #: ../../docs/about/list_of_features.rst:472 -msgid "Supports HTTPS out of the box using bundled certificates." +msgid "Networking" msgstr "" #: ../../docs/about/list_of_features.rst:474 -msgid "High-level multiplayer API using UDP and ENet." +msgid "Low-level TCP networking using StreamPeer and TCP_Server." +msgstr "" + +#: ../../docs/about/list_of_features.rst:475 +msgid "Low-level UDP networking using PacketPeer and UDPServer." msgstr "" #: ../../docs/about/list_of_features.rst:476 -msgid "Automatic replication using remote procedure calls (RPCs)." +msgid "Low-level HTTP requests using HTTPClient." msgstr "" #: ../../docs/about/list_of_features.rst:477 -msgid "Supports unreliable, reliable and ordered transfers." +msgid "High-level HTTP requests using HTTPRequest." msgstr "" #: ../../docs/about/list_of_features.rst:479 -msgid "WebSocket client and server, available on all platforms." -msgstr "" - -#: ../../docs/about/list_of_features.rst:480 -msgid "WebRTC client and server, available on all platforms." +msgid "Supports HTTPS out of the box using bundled certificates." msgstr "" #: ../../docs/about/list_of_features.rst:481 -msgid "Support for UPnP to sidestep the requirement to forward ports when hosting a server behind a NAT." +msgid "High-level multiplayer API using UDP and ENet." msgstr "" -#: ../../docs/about/list_of_features.rst:485 -msgid "Internationalization" +#: ../../docs/about/list_of_features.rst:483 +msgid "Automatic replication using remote procedure calls (RPCs)." +msgstr "" + +#: ../../docs/about/list_of_features.rst:484 +msgid "Supports unreliable, reliable and ordered transfers." +msgstr "" + +#: ../../docs/about/list_of_features.rst:486 +msgid "WebSocket client and server, available on all platforms." msgstr "" #: ../../docs/about/list_of_features.rst:487 -msgid "Full support for Unicode including emoji." +msgid "WebRTC client and server, available on all platforms." msgstr "" #: ../../docs/about/list_of_features.rst:488 -msgid "Store localization strings using :ref:`CSV ` or :ref:`gettext `." -msgstr "" - -#: ../../docs/about/list_of_features.rst:490 -msgid "Use localized strings in your project automatically in GUI elements or by using the ``tr()`` function." +msgid "Support for UPnP to sidestep the requirement to forward ports when hosting a server behind a NAT." msgstr "" #: ../../docs/about/list_of_features.rst:492 -msgid "Support for right-to-left typesetting and text shaping planned in Godot 4.0." +msgid "Internationalization" +msgstr "" + +#: ../../docs/about/list_of_features.rst:494 +msgid "Full support for Unicode including emoji." msgstr "" #: ../../docs/about/list_of_features.rst:495 -msgid "Windowing and OS integration" +msgid "Store localization strings using :ref:`CSV ` or :ref:`gettext `." msgstr "" #: ../../docs/about/list_of_features.rst:497 -msgid "Move, resize, minimize, and maximize the window spawned by the project." -msgstr "" - -#: ../../docs/about/list_of_features.rst:498 -msgid "Change the window title and icon." +msgid "Use localized strings in your project automatically in GUI elements or by using the ``tr()`` function." msgstr "" #: ../../docs/about/list_of_features.rst:499 -msgid "Request attention (will cause the title bar to blink on most platforms)." -msgstr "" - -#: ../../docs/about/list_of_features.rst:500 -msgid "Fullscreen mode." +msgid "Support for right-to-left typesetting and text shaping planned in Godot 4.0." msgstr "" #: ../../docs/about/list_of_features.rst:502 -msgid "Doesn't use exclusive fullscreen, so the screen resolution can't be changed this way. Use a Viewport with a different resolution instead." +msgid "Windowing and OS integration" +msgstr "" + +#: ../../docs/about/list_of_features.rst:504 +msgid "Move, resize, minimize, and maximize the window spawned by the project." msgstr "" #: ../../docs/about/list_of_features.rst:505 -msgid "Borderless window (fullscreen or non-fullscreen)." +msgid "Change the window title and icon." msgstr "" #: ../../docs/about/list_of_features.rst:506 -msgid "Ability to keep the window always on top." +msgid "Request attention (will cause the title bar to blink on most platforms)." msgstr "" #: ../../docs/about/list_of_features.rst:507 -msgid "Transparent window with per-pixel transparency." -msgstr "" - -#: ../../docs/about/list_of_features.rst:508 -msgid "Global menu integration on macOS." +msgid "Fullscreen mode." msgstr "" #: ../../docs/about/list_of_features.rst:509 -msgid "Execute commands in a blocking or non-blocking manner." -msgstr "" - -#: ../../docs/about/list_of_features.rst:510 -msgid "Open file paths and URLs using default or custom protocol handlers (if registered on the system)." -msgstr "" - -#: ../../docs/about/list_of_features.rst:511 -msgid "Parse custom command line arguments." +msgid "Doesn't use exclusive fullscreen, so the screen resolution can't be changed this way. Use a Viewport with a different resolution instead." msgstr "" #: ../../docs/about/list_of_features.rst:512 -msgid ":ref:`Headless/server binaries ` can be downloaded for Linux and :ref:`compiled for macOS `. Any binary can be used without a window using the ``--no-window`` :ref:`command line argument `." +msgid "Borderless window (fullscreen or non-fullscreen)." +msgstr "" + +#: ../../docs/about/list_of_features.rst:513 +msgid "Ability to keep the window always on top." +msgstr "" + +#: ../../docs/about/list_of_features.rst:514 +msgid "Transparent window with per-pixel transparency." +msgstr "" + +#: ../../docs/about/list_of_features.rst:515 +msgid "Global menu integration on macOS." +msgstr "" + +#: ../../docs/about/list_of_features.rst:516 +msgid "Execute commands in a blocking or non-blocking manner." +msgstr "" + +#: ../../docs/about/list_of_features.rst:517 +msgid "Open file paths and URLs using default or custom protocol handlers (if registered on the system)." msgstr "" #: ../../docs/about/list_of_features.rst:518 -msgid "Mobile" +msgid "Parse custom command line arguments." msgstr "" -#: ../../docs/about/list_of_features.rst:520 -msgid "In-app purchases on Android and iOS." -msgstr "" - -#: ../../docs/about/list_of_features.rst:521 -msgid "Support for advertisements using third-party modules." -msgstr "" - -#: ../../docs/about/list_of_features.rst:522 -msgid "Support for subview embedding on Android." +#: ../../docs/about/list_of_features.rst:519 +msgid ":ref:`Headless/server binaries ` can be downloaded for Linux and :ref:`compiled for macOS `. Any binary can be used without a window using the ``--no-window`` :ref:`command line argument `." msgstr "" #: ../../docs/about/list_of_features.rst:525 -msgid "XR support (AR and VR)" +msgid "Mobile" msgstr "" #: ../../docs/about/list_of_features.rst:527 -msgid "Support for ARKit on iOS out of the box." +msgid "In-app purchases on Android and iOS." msgstr "" #: ../../docs/about/list_of_features.rst:528 -msgid "Support for the OpenXR APIs." +msgid "Support for advertisements using third-party modules." msgstr "" -#: ../../docs/about/list_of_features.rst:530 -msgid "Includes support for popular headsets like the Meta Quest and the Valve Index." +#: ../../docs/about/list_of_features.rst:529 +msgid "Support for subview embedding on Android." msgstr "" #: ../../docs/about/list_of_features.rst:532 -msgid "Support for the OpenVR APIs." +msgid "XR support (AR and VR)" +msgstr "" + +#: ../../docs/about/list_of_features.rst:534 +msgid "Support for ARKit on iOS out of the box." msgstr "" #: ../../docs/about/list_of_features.rst:535 -msgid "GUI system" +msgid "Support for the OpenXR APIs." msgstr "" #: ../../docs/about/list_of_features.rst:537 -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." +msgid "Includes support for popular headsets like the Meta Quest and the Valve Index." msgstr "" -#: ../../docs/about/list_of_features.rst:540 -msgid "**Nodes:**" +#: ../../docs/about/list_of_features.rst:539 +msgid "Support for the OpenVR APIs." msgstr "" #: ../../docs/about/list_of_features.rst:542 -msgid "Buttons." -msgstr "" - -#: ../../docs/about/list_of_features.rst:543 -msgid "Checkboxes, check buttons, radio buttons." +msgid "GUI system" msgstr "" #: ../../docs/about/list_of_features.rst:544 -msgid "Text entry using LineEdit (single line) and TextEdit (multiple lines)." -msgstr "" - -#: ../../docs/about/list_of_features.rst:545 -msgid "Dropdown menus using PopupMenu and OptionButton." -msgstr "" - -#: ../../docs/about/list_of_features.rst:546 -msgid "Scrollbars." +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:547 -msgid "Labels." -msgstr "" - -#: ../../docs/about/list_of_features.rst:548 -msgid "RichTextLabel for :ref:`text formatted using BBCode `." +msgid "**Nodes:**" msgstr "" #: ../../docs/about/list_of_features.rst:549 -msgid "Trees (can also be used to represent tables)." +msgid "Buttons." msgstr "" #: ../../docs/about/list_of_features.rst:550 -msgid "Color picker with RGB and HSV modes." +msgid "Checkboxes, check buttons, radio buttons." msgstr "" #: ../../docs/about/list_of_features.rst:551 -msgid "Containers (horizontal, vertical, grid, flow, center, margin, aspect ratio, draggable splitter, ...)." +msgid "Text entry using LineEdit (single line) and TextEdit (multiple lines)." msgstr "" #: ../../docs/about/list_of_features.rst:552 -msgid "Controls can be rotated and scaled." +msgid "Dropdown menus using PopupMenu and OptionButton." +msgstr "" + +#: ../../docs/about/list_of_features.rst:553 +msgid "Scrollbars." msgstr "" #: ../../docs/about/list_of_features.rst:554 -msgid "**Sizing:**" +msgid "Labels." +msgstr "" + +#: ../../docs/about/list_of_features.rst:555 +msgid "RichTextLabel for :ref:`text formatted using BBCode `." msgstr "" #: ../../docs/about/list_of_features.rst:556 -msgid "Anchors to keep GUI elements in a specific corner, edge or centered." +msgid "Trees (can also be used to represent tables)." msgstr "" #: ../../docs/about/list_of_features.rst:557 -msgid "Containers to place GUI elements automatically following certain rules." +msgid "Color picker with RGB and HSV modes." +msgstr "" + +#: ../../docs/about/list_of_features.rst:558 +msgid "Containers (horizontal, vertical, grid, flow, center, margin, aspect ratio, draggable splitter, ...)." msgstr "" #: ../../docs/about/list_of_features.rst:559 -msgid ":ref:`Stack ` layouts." -msgstr "" - -#: ../../docs/about/list_of_features.rst:560 -msgid ":ref:`Grid ` layouts." +msgid "Controls can be rotated and scaled." msgstr "" #: ../../docs/about/list_of_features.rst:561 -msgid ":ref:`Margin ` and :ref:`centered ` layouts." +msgid "**Sizing:**" msgstr "" #: ../../docs/about/list_of_features.rst:563 -msgid ":ref:`Draggable splitter ` layouts." +msgid "Anchors to keep GUI elements in a specific corner, edge or centered." msgstr "" -#: ../../docs/about/list_of_features.rst:565 -msgid "Scale to multiple resolutions using the ``2d`` or ``viewport`` stretch modes." +#: ../../docs/about/list_of_features.rst:564 +msgid "Containers to place GUI elements automatically following certain rules." msgstr "" #: ../../docs/about/list_of_features.rst:566 -msgid "Support any aspect ratio using anchors and the ``expand`` stretch aspect." +msgid ":ref:`Stack ` layouts." +msgstr "" + +#: ../../docs/about/list_of_features.rst:567 +msgid ":ref:`Grid ` layouts." msgstr "" #: ../../docs/about/list_of_features.rst:568 -msgid "**Theming:**" +msgid ":ref:`Margin ` and :ref:`centered ` layouts." msgstr "" #: ../../docs/about/list_of_features.rst:570 -msgid "Built-in theme editor." +msgid ":ref:`Draggable splitter ` layouts." msgstr "" #: ../../docs/about/list_of_features.rst:572 +msgid "Scale to multiple resolutions using the ``2d`` or ``viewport`` stretch modes." +msgstr "" + +#: ../../docs/about/list_of_features.rst:573 +msgid "Support any aspect ratio using anchors and the ``expand`` stretch aspect." +msgstr "" + +#: ../../docs/about/list_of_features.rst:575 +msgid "**Theming:**" +msgstr "" + +#: ../../docs/about/list_of_features.rst:577 +msgid "Built-in theme editor." +msgstr "" + +#: ../../docs/about/list_of_features.rst:579 msgid "Generate a theme based on the current editor theme settings." msgstr "" -#: ../../docs/about/list_of_features.rst:574 +#: ../../docs/about/list_of_features.rst:581 msgid "Procedural vector-based theming using :ref:`class_StyleBoxFlat`." msgstr "" -#: ../../docs/about/list_of_features.rst:576 +#: ../../docs/about/list_of_features.rst:583 msgid "Supports rounded/beveled corners, drop shadows, per-border widths and antialiasing." msgstr "" -#: ../../docs/about/list_of_features.rst:578 +#: ../../docs/about/list_of_features.rst:585 msgid "Texture-based theming using :ref:`class_StyleBoxTexture`." msgstr "" -#: ../../docs/about/list_of_features.rst:580 +#: ../../docs/about/list_of_features.rst:587 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:584 +#: ../../docs/about/list_of_features.rst:591 msgid "Animation" msgstr "" -#: ../../docs/about/list_of_features.rst:586 +#: ../../docs/about/list_of_features.rst:593 msgid "Direct kinematics and inverse kinematics." msgstr "" -#: ../../docs/about/list_of_features.rst:587 +#: ../../docs/about/list_of_features.rst:594 msgid ":ref:`Tween ` node to easily perform procedural animations by code." msgstr "" -#: ../../docs/about/list_of_features.rst:588 +#: ../../docs/about/list_of_features.rst:595 msgid "Support for animating any property with customizable interpolation." msgstr "" -#: ../../docs/about/list_of_features.rst:589 +#: ../../docs/about/list_of_features.rst:596 msgid "Support for calling methods in animation tracks." msgstr "" -#: ../../docs/about/list_of_features.rst:590 +#: ../../docs/about/list_of_features.rst:597 msgid "Support for playing sounds in animation tracks." msgstr "" -#: ../../docs/about/list_of_features.rst:591 +#: ../../docs/about/list_of_features.rst:598 msgid "Support for Bézier curves in animation." msgstr "" -#: ../../docs/about/list_of_features.rst:594 +#: ../../docs/about/list_of_features.rst:601 msgid "File formats" msgstr "" -#: ../../docs/about/list_of_features.rst:596 +#: ../../docs/about/list_of_features.rst:603 msgid "Scenes and resources can be saved in :ref:`text-based ` or binary formats." msgstr "" -#: ../../docs/about/list_of_features.rst:598 +#: ../../docs/about/list_of_features.rst:605 msgid "Text-based formats are human-readable and more friendly to version control." msgstr "" -#: ../../docs/about/list_of_features.rst:599 +#: ../../docs/about/list_of_features.rst:606 msgid "Binary formats are faster to save/load for large scenes/resources." msgstr "" -#: ../../docs/about/list_of_features.rst:601 +#: ../../docs/about/list_of_features.rst:608 msgid "Read and write text or binary files using :ref:`class_File`." msgstr "" -#: ../../docs/about/list_of_features.rst:603 +#: ../../docs/about/list_of_features.rst:610 msgid "Can optionally be compressed or encrypted." msgstr "" -#: ../../docs/about/list_of_features.rst:605 +#: ../../docs/about/list_of_features.rst:612 msgid "Read and write :ref:`class_JSON` files." msgstr "" -#: ../../docs/about/list_of_features.rst:606 +#: ../../docs/about/list_of_features.rst:613 msgid "Read and write INI-style configuration files using :ref:`class_ConfigFile`." msgstr "" -#: ../../docs/about/list_of_features.rst:608 +#: ../../docs/about/list_of_features.rst:615 msgid "Can (de)serialize any Godot datatype, including Vector2/3, Color, ..." msgstr "" -#: ../../docs/about/list_of_features.rst:610 +#: ../../docs/about/list_of_features.rst:617 msgid "Read XML files using :ref:`class_XMLParser`." msgstr "" -#: ../../docs/about/list_of_features.rst:611 +#: ../../docs/about/list_of_features.rst:618 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:613 +#: ../../docs/about/list_of_features.rst:620 msgid ":ref:`Export additional PCK files` that can be read by the engine to support mods and DLCs." msgstr "" -#: ../../docs/about/list_of_features.rst:617 +#: ../../docs/about/list_of_features.rst:624 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/list_of_features.rst:619 +#: ../../docs/about/list_of_features.rst:626 msgid ":ref:`Low-level access to servers ` which allows bypassing the scene tree's overhead when needed." msgstr "" -#: ../../docs/about/list_of_features.rst:621 +#: ../../docs/about/list_of_features.rst:628 msgid ":ref:`Command line interface ` for automation." msgstr "" -#: ../../docs/about/list_of_features.rst:623 +#: ../../docs/about/list_of_features.rst:630 msgid "Export and deploy projects using continuous integration platforms." msgstr "" -#: ../../docs/about/list_of_features.rst:624 +#: ../../docs/about/list_of_features.rst:631 msgid "`Shell completion scripts `__ are available for Bash, zsh and fish." msgstr "" -#: ../../docs/about/list_of_features.rst:627 +#: ../../docs/about/list_of_features.rst:634 msgid "Support for :ref:`C++ modules ` statically linked into the engine binary." msgstr "" -#: ../../docs/about/list_of_features.rst:629 +#: ../../docs/about/list_of_features.rst:636 msgid "Engine and editor written in C++03." msgstr "" -#: ../../docs/about/list_of_features.rst:631 +#: ../../docs/about/list_of_features.rst:638 msgid "Can be :ref:`compiled ` using GCC, Clang and MSVC. MinGW is also supported." msgstr "" -#: ../../docs/about/list_of_features.rst:633 +#: ../../docs/about/list_of_features.rst:640 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:636 +#: ../../docs/about/list_of_features.rst:643 msgid "Godot 4.0 will be written in C++17." msgstr "" -#: ../../docs/about/list_of_features.rst:638 +#: ../../docs/about/list_of_features.rst:645 msgid "Licensed under the permissive MIT license." msgstr "" -#: ../../docs/about/list_of_features.rst:640 +#: ../../docs/about/list_of_features.rst:647 msgid "Open developement process with :ref:`contributions welcome `." msgstr "" -#: ../../docs/about/list_of_features.rst:644 +#: ../../docs/about/list_of_features.rst:651 msgid "The `Godot proposals repository `__ lists features that have been requested by the community and may be implemented in future Godot releases." msgstr "" diff --git a/sphinx/templates/about/release_policy.pot b/sphinx/templates/about/release_policy.pot index 8c2e32c8a5..367deafd93 100644 --- a/sphinx/templates/about/release_policy.pot +++ b/sphinx/templates/about/release_policy.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -105,44 +105,41 @@ msgid "Godot 4.0" msgstr "" #: ../../docs/about/release_policy.rst:91 -msgid "~2022 (see below)" +#: ../../docs/about/release_policy.rst:93 +msgid "Q4 2022" msgstr "" #: ../../docs/about/release_policy.rst:91 -msgid "|unstable| *Current focus of development (unstable).*" +msgid "|unstable| *Alpha.* Current focus of development (unstable)." msgstr "" -#: ../../docs/about/release_policy.rst:120 -#: ../../docs/about/release_policy.rst:120 -#: ../../docs/about/release_policy.rst:120 +#: ../../docs/about/release_policy.rst:122 +#: ../../docs/about/release_policy.rst:122 +#: ../../docs/about/release_policy.rst:122 msgid "unstable" msgstr "" #: ../../docs/about/release_policy.rst:93 -msgid "Godot 3.5" -msgstr "" - -#: ../../docs/about/release_policy.rst:93 -msgid "Q2 2022" +msgid "Godot 3.6" msgstr "" #: ../../docs/about/release_policy.rst:93 msgid "|supported| *Beta.* Receives new features as well as bug fixes while under development." msgstr "" -#: ../../docs/about/release_policy.rst:117 -#: ../../docs/about/release_policy.rst:117 -#: ../../docs/about/release_policy.rst:117 -#: ../../docs/about/release_policy.rst:117 +#: ../../docs/about/release_policy.rst:119 +#: ../../docs/about/release_policy.rst:119 +#: ../../docs/about/release_policy.rst:119 +#: ../../docs/about/release_policy.rst:119 msgid "supported" msgstr "" #: ../../docs/about/release_policy.rst:96 -msgid "Godot 3.4" +msgid "Godot 3.5" msgstr "" #: ../../docs/about/release_policy.rst:96 -msgid "November 2021" +msgid "August 2022" msgstr "" #: ../../docs/about/release_policy.rst:96 @@ -150,142 +147,151 @@ msgid "|supported| Receives fixes for bugs, security and platform support issues msgstr "" #: ../../docs/about/release_policy.rst:99 -msgid "Godot 3.3" +msgid "Godot 3.4" msgstr "" #: ../../docs/about/release_policy.rst:99 -msgid "April 2021" +msgid "November 2021" msgstr "" #: ../../docs/about/release_policy.rst:99 msgid "|partial| Receives fixes for security and platform support issues only." msgstr "" -#: ../../docs/about/release_policy.rst:118 -#: ../../docs/about/release_policy.rst:118 -#: ../../docs/about/release_policy.rst:118 +#: ../../docs/about/release_policy.rst:120 +#: ../../docs/about/release_policy.rst:120 +#: ../../docs/about/release_policy.rst:120 msgid "partial" msgstr "" #: ../../docs/about/release_policy.rst:101 -msgid "Godot 3.2" +msgid "Godot 3.3" msgstr "" #: ../../docs/about/release_policy.rst:101 -msgid "January 2020" +msgid "April 2021" msgstr "" #: ../../docs/about/release_policy.rst:101 -msgid "|eol| No longer supported as fully superseded by the compatible 3.3 release (last update: 3.2.3)." +msgid "|eol| No longer supported as fully superseded by the compatible 3.4 release (last update: 3.3.4)." msgstr "" -#: ../../docs/about/release_policy.rst:119 -#: ../../docs/about/release_policy.rst:119 -#: ../../docs/about/release_policy.rst:119 -#: ../../docs/about/release_policy.rst:119 -#: ../../docs/about/release_policy.rst:119 -#: ../../docs/about/release_policy.rst:119 -#: ../../docs/about/release_policy.rst:119 -#: ../../docs/about/release_policy.rst:119 -#: ../../docs/about/release_policy.rst:119 +#: ../../docs/about/release_policy.rst:121 +#: ../../docs/about/release_policy.rst:121 +#: ../../docs/about/release_policy.rst:121 +#: ../../docs/about/release_policy.rst:121 +#: ../../docs/about/release_policy.rst:121 +#: ../../docs/about/release_policy.rst:121 +#: ../../docs/about/release_policy.rst:121 +#: ../../docs/about/release_policy.rst:121 +#: ../../docs/about/release_policy.rst:121 +#: ../../docs/about/release_policy.rst:121 msgid "eol" msgstr "" #: ../../docs/about/release_policy.rst:104 +msgid "Godot 3.2" +msgstr "" + +#: ../../docs/about/release_policy.rst:104 +msgid "January 2020" +msgstr "" + +#: ../../docs/about/release_policy.rst:104 +msgid "|eol| No longer supported (last update: 3.2.3)." +msgstr "" + +#: ../../docs/about/release_policy.rst:106 msgid "Godot 3.1" msgstr "" -#: ../../docs/about/release_policy.rst:104 +#: ../../docs/about/release_policy.rst:106 msgid "March 2019" msgstr "" -#: ../../docs/about/release_policy.rst:104 +#: ../../docs/about/release_policy.rst:106 msgid "|eol| No longer supported (last update: 3.1.2)." msgstr "" -#: ../../docs/about/release_policy.rst:106 +#: ../../docs/about/release_policy.rst:108 msgid "Godot 3.0" msgstr "" -#: ../../docs/about/release_policy.rst:106 +#: ../../docs/about/release_policy.rst:108 msgid "January 2018" msgstr "" -#: ../../docs/about/release_policy.rst:106 +#: ../../docs/about/release_policy.rst:108 msgid "|eol| No longer supported (last update: 3.0.6)." msgstr "" -#: ../../docs/about/release_policy.rst:108 +#: ../../docs/about/release_policy.rst:110 msgid "Godot 2.1" msgstr "" -#: ../../docs/about/release_policy.rst:108 +#: ../../docs/about/release_policy.rst:110 msgid "July 2016" msgstr "" -#: ../../docs/about/release_policy.rst:108 +#: ../../docs/about/release_policy.rst:110 msgid "|eol| No longer supported (last update: 2.1.6)." msgstr "" -#: ../../docs/about/release_policy.rst:110 +#: ../../docs/about/release_policy.rst:112 msgid "Godot 2.0" msgstr "" -#: ../../docs/about/release_policy.rst:110 +#: ../../docs/about/release_policy.rst:112 msgid "February 2016" msgstr "" -#: ../../docs/about/release_policy.rst:110 +#: ../../docs/about/release_policy.rst:112 msgid "|eol| No longer supported (last update: 2.0.4.1)." msgstr "" -#: ../../docs/about/release_policy.rst:112 +#: ../../docs/about/release_policy.rst:114 msgid "Godot 1.1" msgstr "" -#: ../../docs/about/release_policy.rst:112 +#: ../../docs/about/release_policy.rst:114 msgid "May 2015" msgstr "" -#: ../../docs/about/release_policy.rst:112 #: ../../docs/about/release_policy.rst:114 +#: ../../docs/about/release_policy.rst:116 msgid "|eol| No longer supported." msgstr "" -#: ../../docs/about/release_policy.rst:114 +#: ../../docs/about/release_policy.rst:116 msgid "Godot 1.0" msgstr "" -#: ../../docs/about/release_policy.rst:114 +#: ../../docs/about/release_policy.rst:116 msgid "December 2014" msgstr "" -#: ../../docs/about/release_policy.rst:122 +#: ../../docs/about/release_policy.rst:124 msgid "**Legend:** |supported| Full support – |partial| Partial support – |eol| No support (end of life) – |unstable| Development version" msgstr "" -#: ../../docs/about/release_policy.rst:128 +#: ../../docs/about/release_policy.rst:130 msgid "Pre-release Godot versions aren't intended to be used in production and are provided for testing purposes only." msgstr "" -#: ../../docs/about/release_policy.rst:134 +#: ../../docs/about/release_policy.rst:136 msgid "When is the next release out?" msgstr "" -#: ../../docs/about/release_policy.rst:136 -msgid "While Godot contributors aren't working under any deadlines, we have historically had one major or minor release per year, with several maintenance updates between each." +#: ../../docs/about/release_policy.rst:138 +msgid "While Godot contributors aren't working under any deadlines, we strive to publish minor releases relatively frequently, with an average of two 3.x minor releases per year since Godot 3.3." msgstr "" -#: ../../docs/about/release_policy.rst:140 -msgid "Starting with Godot 3.3, we aim to accelerate our development cycles for minor releases, so you can expect a new minor release every 3 to 6 months." +#: ../../docs/about/release_policy.rst:142 +msgid "Maintenance (patch) releases are released as needed with potentially very short development cycles, to provide users of the current stable branch with the latest bug fixes for their production needs." msgstr "" -#: ../../docs/about/release_policy.rst:143 -msgid "Maintenance (patch) releases will be released as needed with potentially very short development cycles, to provide users of the current stable branch with the latest bug fixes for their production needs." -msgstr "" - -#: ../../docs/about/release_policy.rst:147 -msgid "As for the upcoming Godot 4.0, we can only say that we aim for a **2022** release, but any closer estimate is likely to be hard to uphold. Alpha builds will be published as soon as the main features for Godot 4.0 are finalized." +#: ../../docs/about/release_policy.rst:146 +msgid "As for the upcoming Godot 4.0, as of August 2022, we are aiming for a *beta* release in Q3 2022, and possibly a stable release by Q4 2022 (but experience has shown time and time again that such estimates tend to be overly optimistic). `Follow the Godot blog `__ for the latest updates." msgstr "" #: ../../docs/:0 diff --git a/sphinx/templates/about/troubleshooting.pot b/sphinx/templates/about/troubleshooting.pot index 2f7e81c844..59719702f3 100644 --- a/sphinx/templates/about/troubleshooting.pot +++ b/sphinx/templates/about/troubleshooting.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/asset_library/index.pot b/sphinx/templates/community/asset_library/index.pot index 9066ee9299..a5e587d9c3 100644 --- a/sphinx/templates/community/asset_library/index.pot +++ b/sphinx/templates/community/asset_library/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/asset_library/submitting_to_assetlib.pot b/sphinx/templates/community/asset_library/submitting_to_assetlib.pot index ea4515ef07..be11a13255 100644 --- a/sphinx/templates/community/asset_library/submitting_to_assetlib.pot +++ b/sphinx/templates/community/asset_library/submitting_to_assetlib.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -97,171 +97,175 @@ msgid "If your asset is a library for working with other files, consider includi msgstr "" #: ../../docs/community/asset_library/submitting_to_assetlib.rst:80 -msgid "Consider adding a **.gitattributes** file to your repo. This file allows giving extra instructions to Git, such as specifying line endings and listing files not required for your asset to function with the ``export-ignore`` directive. This directive removes such files from the resulting ZIP file and prevents them from being downloaded by the asset library users. For a typical plugin **.gitattributes** may look like this:" +msgid "Consider adding a **.gitattributes** file to your repo. This file allows giving extra instructions to Git, such as specifying line endings and listing files not required for your asset to function with the ``export-ignore`` directive. This directive removes such files from the resulting ZIP file, preventing them from being downloaded by the asset library users. These are common examples of **.gitattributes**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:102 -msgid "Other types of assets may require a different configuration (e.g. a project template requires **project.godot**)." +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:89 +msgid "Projects / Templates" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:105 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:96 +msgid "Addons / Asset Packs" +msgstr "" + +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:108 msgid "If you are submitting a plugin, add a **copy** of your license and readme to the plugin folder itself. This is the folder that users are guaranteed to keep with their project, so a copy ensures they always have those files handy (and helps them fulfill your licensing terms)." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:110 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:113 msgid "The **icon** should be a square, its aspect ratio should be 1:1. It should also ideally have a minimum resolution of 64x64 pixels." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:113 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:116 msgid "While the asset library allows more than just GitHub, consider hosting your asset's source code on **GitHub**. Other services may not work reliably, and a lack of familiarity can be a barrier to contributors." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:118 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:121 msgid "Submitting" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:120 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:123 msgid "Once you are logged in, you will be able to head over to the \"Submit Assets\" page of the AssetLib, which will look like this:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:123 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:126 msgid "|image0|" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:211 -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:211 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:214 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:214 msgid "image0" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:125 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:128 msgid "While it may look like a lot (and there is more as you scroll down), each field is described in terms of what you should put in. We will nonetheless go over what is required in the submission form here as well." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:130 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:133 msgid "**Asset Name**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:130 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:133 msgid "The name of your asset. Should be a unique, descriptive title of what your asset is." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:136 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:139 msgid "**Category**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:133 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:136 msgid "The category that your asset belongs to, and will be shown in search results. The category is split into **Addons** and **Projects**. In-editor, assets of the Project type (Templates, Demos, Projects) only show up when viewing the AssetLib from the Project Manager, while assets of the Addon type will only be visible from inside a project." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:142 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:145 msgid "**Godot version**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:139 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:142 msgid "The version of the engine that the asset works with. Currently, it's not possible to have a single asset entry contain downloads for multiple engine versions, so you may need to re-submit the asset multiple times, with an entry for each Godot version it supports. This is particularly important when dealing with major versions of the engine, such as Godot 2.x and Godot 3.x." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:149 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:152 msgid "**Version**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:145 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:148 msgid "The version number of the asset. While you are free to choose and use any versioning scheme that you like, you may want to look into something such as `SemVer `_ if you want your asset's versioning scheme to be clear and consistent. Note that there is also an internal version number, incremented every time the asset download URL is changed or updated." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:154 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:157 msgid "**Repository host**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:152 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:155 msgid "Assets uploaded to the AssetLib are not hosted on it directly. Instead, they point to repositories hosted on third-party Git providers, such as GitHub, GitLab or Bitbucket. This is where you choose which provider your asset uses, so the site can compute the final download link." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:157 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:160 msgid "**Repository URL**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:157 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:160 msgid "The URL to your asset's files/webpage. This will vary based on your choice of provider, but it should look similar to `https://github.com//`." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:162 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:165 msgid "**Issues URL**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:160 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:163 msgid "The URL to your asset's issue tracker. Again, this will differ from repository host to repository host, but will likely look similar to `https://github.com///issues`. You may leave this field empty if you use your provider's issue tracker, and it's part of the same repository." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:166 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:169 msgid "**Download Commit**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:165 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:168 msgid "The commit of the asset. For example, `b1d3172f89b86e52465a74f63a74ac84c491d3e1`. The site computes the actual download URL from this." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:170 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:173 msgid "**Icon URL**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:169 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:172 msgid "The URL to your asset's icon (which will be used as a thumbnail in the AssetLib search results and on the asset's page). Should be an image in either the PNG or JPG format." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:175 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:178 msgid "**License**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:173 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:176 msgid "The license under which you are distributing the asset. The list includes a variety of free and open-source software licenses, such as GPL (v2 and v3), MIT, BSD and Boost Software License. You can visit `OpenSource.org `_ for a detailed description of each of the listed licenses." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:181 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:184 msgid "**Description**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:178 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:181 msgid "Finally, you can use the Description field for a textual overview of your asset, its features and behavior, a changelog, et cetera. In the future, formatting with Markdown will be supported, but currently, your only option is plain text." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:183 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:186 msgid "You may also include up to three video and/or image previews, which will be shown at the bottom of the asset page. Use the \"Enable\" checkbox on each of the preview submission boxes to enable them." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:187 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:190 msgid "**Type**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:188 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:191 msgid "Either an image, or a video." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:189 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:192 msgid "**Image/YouTube URL**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:190 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:193 msgid "Either a link to the image, or to a video, hosted on YouTube." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:194 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:197 msgid "**Thumbnail URL**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:192 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:195 msgid "A URL to an image that will be used as a thumbnail for the preview. This option will be removed eventually, and thumbnails will be automatically computed instead." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:196 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:199 msgid "Once you are done, press \"Submit\". Your asset will be entered into the review queue. You can check all assets currently pending a review `here `_ . The approval process is manual and may take up to a few days for your asset to be accepted (or rejected), so please be patient!" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:203 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:206 msgid "You may have some luck accelerating the approval process by messaging the moderators and AssetLib reviewers on the `Godot Contributors Chat `_, or the official Discord server." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:207 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:210 msgid "You will be informed when your asset is reviewed. If it was rejected, you will be told why that may have been, and you will be able to submit it again with the appropriate changes." msgstr "" diff --git a/sphinx/templates/community/asset_library/using_assetlib.pot b/sphinx/templates/community/asset_library/using_assetlib.pot index 8420fed981..a50b483943 100644 --- a/sphinx/templates/community/asset_library/using_assetlib.pot +++ b/sphinx/templates/community/asset_library/using_assetlib.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/asset_library/what_is_assetlib.pot b/sphinx/templates/community/asset_library/what_is_assetlib.pot index ebc402d9c2..c4260db25c 100644 --- a/sphinx/templates/community/asset_library/what_is_assetlib.pot +++ b/sphinx/templates/community/asset_library/what_is_assetlib.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/channels.pot b/sphinx/templates/community/channels.pot index 4215a4b612..e1224bb601 100644 --- a/sphinx/templates/community/channels.pot +++ b/sphinx/templates/community/channels.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/best_practices_for_engine_contributors.pot b/sphinx/templates/community/contributing/best_practices_for_engine_contributors.pot index 8ec24ab50b..8ca104b478 100644 --- a/sphinx/templates/community/contributing/best_practices_for_engine_contributors.pot +++ b/sphinx/templates/community/contributing/best_practices_for_engine_contributors.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/bisecting_regressions.pot b/sphinx/templates/community/contributing/bisecting_regressions.pot index 320523e8c7..422ad15611 100644 --- a/sphinx/templates/community/contributing/bisecting_regressions.pot +++ b/sphinx/templates/community/contributing/bisecting_regressions.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/bug_triage_guidelines.pot b/sphinx/templates/community/contributing/bug_triage_guidelines.pot index f2e659d077..a85c6fa4ff 100644 --- a/sphinx/templates/community/contributing/bug_triage_guidelines.pot +++ b/sphinx/templates/community/contributing/bug_triage_guidelines.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/building_the_manual.pot b/sphinx/templates/community/contributing/building_the_manual.pot index 953806cada..e0735f6af3 100644 --- a/sphinx/templates/community/contributing/building_the_manual.pot +++ b/sphinx/templates/community/contributing/building_the_manual.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/class_reference_writing_guidelines.pot b/sphinx/templates/community/contributing/class_reference_writing_guidelines.pot index 82bfca282d..813a94076f 100644 --- a/sphinx/templates/community/contributing/class_reference_writing_guidelines.pot +++ b/sphinx/templates/community/contributing/class_reference_writing_guidelines.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/code_style_guidelines.pot b/sphinx/templates/community/contributing/code_style_guidelines.pot index fd6e7a89a1..05a9ffe280 100644 --- a/sphinx/templates/community/contributing/code_style_guidelines.pot +++ b/sphinx/templates/community/contributing/code_style_guidelines.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/content_guidelines.pot b/sphinx/templates/community/contributing/content_guidelines.pot index 76b6bce3d7..a8c7b39bbc 100644 --- a/sphinx/templates/community/contributing/content_guidelines.pot +++ b/sphinx/templates/community/contributing/content_guidelines.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/contributing_to_the_documentation.pot b/sphinx/templates/community/contributing/contributing_to_the_documentation.pot index 575794fc39..c336510142 100644 --- a/sphinx/templates/community/contributing/contributing_to_the_documentation.pot +++ b/sphinx/templates/community/contributing/contributing_to_the_documentation.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/cpp_usage_guidelines.pot b/sphinx/templates/community/contributing/cpp_usage_guidelines.pot index ea31206ac8..348bad325e 100644 --- a/sphinx/templates/community/contributing/cpp_usage_guidelines.pot +++ b/sphinx/templates/community/contributing/cpp_usage_guidelines.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/docs_writing_guidelines.pot b/sphinx/templates/community/contributing/docs_writing_guidelines.pot index 65054aabef..e4ec3207b5 100644 --- a/sphinx/templates/community/contributing/docs_writing_guidelines.pot +++ b/sphinx/templates/community/contributing/docs_writing_guidelines.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -30,7 +30,7 @@ msgstr "" #: ../../docs/community/contributing/docs_writing_guidelines.rst:14 #: ../../docs/community/contributing/docs_writing_guidelines.rst:44 -msgid "Use the direct voice" +msgid "Use the active voice" msgstr "" #: ../../docs/community/contributing/docs_writing_guidelines.rst:15 @@ -97,7 +97,7 @@ msgid "7 rules for clear English" msgstr "" #: ../../docs/community/contributing/docs_writing_guidelines.rst:46 -msgid "Use the direct voice when possible. Take the classes, methods, and constants you describe as the subject. It's natural to write using the passive voice, but it's harder to read and produces longer sentences." +msgid "Use the active voice when possible. Take the classes, methods, and constants you describe as the subject. It's natural to write using the passive voice, but it's harder to read and produces longer sentences." msgstr "" #: ../../docs/community/contributing/docs_writing_guidelines.rst:52 diff --git a/sphinx/templates/community/contributing/documentation_guidelines.pot b/sphinx/templates/community/contributing/documentation_guidelines.pot index c22539ad6b..4ef1c3d8f5 100644 --- a/sphinx/templates/community/contributing/documentation_guidelines.pot +++ b/sphinx/templates/community/contributing/documentation_guidelines.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/editor_and_docs_localization.pot b/sphinx/templates/community/contributing/editor_and_docs_localization.pot index 3ea974fc9a..75463a5d7b 100644 --- a/sphinx/templates/community/contributing/editor_and_docs_localization.pot +++ b/sphinx/templates/community/contributing/editor_and_docs_localization.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/index.pot b/sphinx/templates/community/contributing/index.pot index 44a31e8eeb..3cacb97fe5 100644 --- a/sphinx/templates/community/contributing/index.pot +++ b/sphinx/templates/community/contributing/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/pr_workflow.pot b/sphinx/templates/community/contributing/pr_workflow.pot index 795a860148..1f1db3a2d7 100644 --- a/sphinx/templates/community/contributing/pr_workflow.pot +++ b/sphinx/templates/community/contributing/pr_workflow.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -309,7 +309,7 @@ msgid "The good news is that you can modify a pull request simply by acting on t msgstr "" #: ../../docs/community/contributing/pr_workflow.rst:398 -msgid "However, be aware that in our PR workflow, we favor commits that bring the codebase from one functional state to another functional state, without having intermediate commits fixing up bugs in your own code or style issues. Most of the time, we will prefer a single commit in a given PR (unless there's a good reason to keep the changes separate), so instead of authoring a new commit, considering using ``git commit --amend`` to amend the previous commit with your fixes. The above example would then become:" +msgid "However, be aware that in our PR workflow, we favor commits that bring the codebase from one functional state to another functional state, without having intermediate commits fixing up bugs in your own code or style issues. Most of the time, we will prefer a single commit in a given PR (unless there's a good reason to keep the changes separate). Instead of authoring a new commit, consider using ``git commit --amend`` to amend the previous commit with your fixes. The above example would then become:" msgstr "" #: ../../docs/community/contributing/pr_workflow.rst:428 diff --git a/sphinx/templates/community/contributing/testing_pull_requests.pot b/sphinx/templates/community/contributing/testing_pull_requests.pot index 734edbae26..7abf7ac7d4 100644 --- a/sphinx/templates/community/contributing/testing_pull_requests.pot +++ b/sphinx/templates/community/contributing/testing_pull_requests.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/updating_the_class_reference.pot b/sphinx/templates/community/contributing/updating_the_class_reference.pot index fcbf121cd7..1c21019efd 100644 --- a/sphinx/templates/community/contributing/updating_the_class_reference.pot +++ b/sphinx/templates/community/contributing/updating_the_class_reference.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/ways_to_contribute.pot b/sphinx/templates/community/contributing/ways_to_contribute.pot index f769dd1925..f7c34c4913 100644 --- a/sphinx/templates/community/contributing/ways_to_contribute.pot +++ b/sphinx/templates/community/contributing/ways_to_contribute.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/tutorials.pot b/sphinx/templates/community/tutorials.pot index b6ea1d6a1d..b79549b173 100644 --- a/sphinx/templates/community/tutorials.pot +++ b/sphinx/templates/community/tutorials.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/compiling/compiling_for_android.pot b/sphinx/templates/development/compiling/compiling_for_android.pot index 7afdad130e..a43a47a040 100644 --- a/sphinx/templates/development/compiling/compiling_for_android.pot +++ b/sphinx/templates/development/compiling/compiling_for_android.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/compiling/compiling_for_ios.pot b/sphinx/templates/development/compiling/compiling_for_ios.pot index cab7f80148..cee84109fc 100644 --- a/sphinx/templates/development/compiling/compiling_for_ios.pot +++ b/sphinx/templates/development/compiling/compiling_for_ios.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/compiling/compiling_for_osx.pot b/sphinx/templates/development/compiling/compiling_for_osx.pot index d84e0c2d6f..d29757a080 100644 --- a/sphinx/templates/development/compiling/compiling_for_osx.pot +++ b/sphinx/templates/development/compiling/compiling_for_osx.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/compiling/compiling_for_uwp.pot b/sphinx/templates/development/compiling/compiling_for_uwp.pot index ca99df3b71..f41afd196f 100644 --- a/sphinx/templates/development/compiling/compiling_for_uwp.pot +++ b/sphinx/templates/development/compiling/compiling_for_uwp.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/compiling/compiling_for_web.pot b/sphinx/templates/development/compiling/compiling_for_web.pot index bbcc585d7d..3d806a2cd2 100644 --- a/sphinx/templates/development/compiling/compiling_for_web.pot +++ b/sphinx/templates/development/compiling/compiling_for_web.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/compiling/compiling_for_windows.pot b/sphinx/templates/development/compiling/compiling_for_windows.pot index 798635edc9..7496ed3ded 100644 --- a/sphinx/templates/development/compiling/compiling_for_windows.pot +++ b/sphinx/templates/development/compiling/compiling_for_windows.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -185,106 +185,110 @@ msgid "If you want to use separate editor settings for your own Godot builds and msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:172 -msgid "Development in Visual Studio or other IDEs" +msgid "Development in Visual Studio" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:174 -msgid "For most projects, using only scripting is enough but when development in C++ is needed, for creating modules or extending the engine, working with an IDE is usually desirable." +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/development/compiling/compiling_for_windows.rst:178 +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/development/compiling/compiling_for_windows.rst:181 msgid "You can create a Visual Studio solution via SCons by running SCons with the ``vsproj=yes`` parameter, like this::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:183 +#: ../../docs/development/compiling/compiling_for_windows.rst:186 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/development/compiling/compiling_for_windows.rst:186 -msgid "If you need to edit the build commands, they are located in \"Godot\" project settings, NMAKE sheet. SCons is called at the end of the commands. If you make a mistake, copy the command from one of the other build configurations (debug, release_debug, release) or architectures (Win32/x64); they are equivalent." +#: ../../docs/development/compiling/compiling_for_windows.rst:189 +msgid "See :ref:`doc_configuring_an_ide_vs` for further details." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:193 +#: ../../docs/development/compiling/compiling_for_windows.rst:192 msgid "Cross-compiling for Windows from other operating systems" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:195 +#: ../../docs/development/compiling/compiling_for_windows.rst:194 msgid "If you are a Linux or macOS user, you need to install `MinGW-w64 `__, which typically comes in 32-bit and 64-bit variants. The package names may differ based on your distribution, here are some known ones:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:201 +#: ../../docs/development/compiling/compiling_for_windows.rst:200 msgid "**Arch Linux**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:201 +#: ../../docs/development/compiling/compiling_for_windows.rst:200 msgid "Install `mingw-w64-gcc from the AUR`_." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:203 +#: ../../docs/development/compiling/compiling_for_windows.rst:202 msgid "**Debian** / **Ubuntu**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:207 +#: ../../docs/development/compiling/compiling_for_windows.rst:206 msgid "**Fedora**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:212 +#: ../../docs/development/compiling/compiling_for_windows.rst:211 msgid "**macOS**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:216 +#: ../../docs/development/compiling/compiling_for_windows.rst:215 msgid "**Mageia**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:224 +#: ../../docs/development/compiling/compiling_for_windows.rst:223 msgid "Before attempting the compilation, SCons will check for the following binaries in your ``PATH`` environment variable::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:230 +#: ../../docs/development/compiling/compiling_for_windows.rst:229 msgid "If the binaries are not located in the ``PATH`` (e.g. ``/usr/bin``), you can define the following environment variables to give a hint to the build system::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:237 +#: ../../docs/development/compiling/compiling_for_windows.rst:236 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/development/compiling/compiling_for_windows.rst:245 +#: ../../docs/development/compiling/compiling_for_windows.rst:244 msgid "Troubleshooting" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:247 +#: ../../docs/development/compiling/compiling_for_windows.rst:246 msgid "Cross-compiling from some Ubuntu versions may lead to `this bug `_, due to a default configuration lacking support for POSIX threading." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:251 +#: ../../docs/development/compiling/compiling_for_windows.rst:250 msgid "You can change that configuration following those instructions, for 64-bit::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:259 +#: ../../docs/development/compiling/compiling_for_windows.rst:258 msgid "And for 32-bit::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:267 +#: ../../docs/development/compiling/compiling_for_windows.rst:266 msgid "Creating Windows export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:269 +#: ../../docs/development/compiling/compiling_for_windows.rst:268 msgid "Windows export templates are created by compiling Godot without the editor, with the following flags::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:277 +#: ../../docs/development/compiling/compiling_for_windows.rst:276 msgid "If you plan on replacing the standard export templates, copy these to the following location, replacing ```` with the version identifier (such as ``3.1.1.stable`` or ``3.2.dev``)::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:283 +#: ../../docs/development/compiling/compiling_for_windows.rst:282 msgid "With the following names::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:290 +#: ../../docs/development/compiling/compiling_for_windows.rst:289 msgid "However, if you are using custom modules or custom engine code, you may instead want to configure your binaries as custom export templates here:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:296 +#: ../../docs/development/compiling/compiling_for_windows.rst:295 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 "" diff --git a/sphinx/templates/development/compiling/compiling_for_x11.pot b/sphinx/templates/development/compiling/compiling_for_x11.pot index 2f52524965..a9c1bb4b53 100644 --- a/sphinx/templates/development/compiling/compiling_for_x11.pot +++ b/sphinx/templates/development/compiling/compiling_for_x11.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -261,7 +261,7 @@ msgid "You can use `Pyston `__ to run SCons. Pyston is msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:249 -msgid "Download the `latest portable Pyston release `__." +msgid "Download the `latest portable Pyston release `__." msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:250 diff --git a/sphinx/templates/development/compiling/compiling_with_mono.pot b/sphinx/templates/development/compiling/compiling_with_mono.pot index 08e35650f1..59131c993b 100644 --- a/sphinx/templates/development/compiling/compiling_with_mono.pot +++ b/sphinx/templates/development/compiling/compiling_with_mono.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/compiling/compiling_with_script_encryption_key.pot b/sphinx/templates/development/compiling/compiling_with_script_encryption_key.pot index 5154f0d94e..ff7722f166 100644 --- a/sphinx/templates/development/compiling/compiling_with_script_encryption_key.pot +++ b/sphinx/templates/development/compiling/compiling_with_script_encryption_key.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,54 +21,62 @@ msgid "Compiling with script encryption key" msgstr "" #: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:8 -msgid "The export dialog gives you the option to encrypt your scripts with an 256bit AES key, when releasing your game. This will make sure your scripts are not stored in plain text and can not easily be ripped by some script kiddie. Of course the key needs to be stored in the binary, but if it's compiled, optimized and without symbols, it would take some effort to find it." +msgid "The export dialog gives you the option to encrypt your scripts with a 256-bit AES key when releasing your project. This will make sure your scripts are not stored in plain text and can not easily be ripped by some script kiddie." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:14 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:12 +msgid "Of course, the key needs to be stored in the binary, but if it's compiled, optimized and without symbols, it would take some effort to find it." +msgstr "" + +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:15 msgid "For this to work, you need to build the export templates from source, with that same key." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:18 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:20 +msgid "This will **not** work if you use official, precompiled export templates. It is absolutely **required** to compile your own export templates to use PCK encryption." +msgstr "" + +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:25 msgid "Step by step" msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:20 -msgid "Generate a 256bit AES key in HEX. You can use the aes-256-cbc variant from `this service `_." +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:27 +msgid "Generate a 256-bit AES key in hexadecimal format. You can use the aes-256-cbc variant from `this service `_." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:23 -msgid "Alternatively, you can generate it yourself by using OpenSSL:" +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:30 +msgid "Alternatively, you can generate it yourself using `OpenSSL `__ command-line tools:" msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:29 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:37 msgid "The output in ``godot.gdkey`` should be similar to:" msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:35 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:44 msgid "You can generate the key without redirecting the output to a file, but that way you can minimize the risk of exposing the key." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:38 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:47 msgid "Set this key as environment variable in the console that you will use to compile Godot, like this:" msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:54 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:63 msgid "Compile Godot export templates and set them as custom export templates in the export preset options." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:57 -msgid "Set the encryption key in the ``Script`` tab of the export preset:" +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:66 +msgid "Set the encryption key in the **Script** tab of the export preset:" msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:61 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:70 msgid "Export the project. The game should run with encrypted scripts now." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:64 -msgid "Possible Errors" +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:73 +msgid "Troubleshooting" msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:66 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:75 msgid "If you get an error like below, it means the key wasn't properly included in your Godot build. Godot is encrypting the scripts during export, but can't read them at runtime." msgstr "" diff --git a/sphinx/templates/development/compiling/cross-compiling_for_ios_on_linux.pot b/sphinx/templates/development/compiling/cross-compiling_for_ios_on_linux.pot index 6457696b90..a8ebf9081f 100644 --- a/sphinx/templates/development/compiling/cross-compiling_for_ios_on_linux.pot +++ b/sphinx/templates/development/compiling/cross-compiling_for_ios_on_linux.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/compiling/getting_source.pot b/sphinx/templates/development/compiling/getting_source.pot index bdc6ad42b9..a8f40de70c 100644 --- a/sphinx/templates/development/compiling/getting_source.pot +++ b/sphinx/templates/development/compiling/getting_source.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/compiling/index.pot b/sphinx/templates/development/compiling/index.pot index 90a669fa7b..4e9f5dbffd 100644 --- a/sphinx/templates/development/compiling/index.pot +++ b/sphinx/templates/development/compiling/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/compiling/introduction_to_the_buildsystem.pot b/sphinx/templates/development/compiling/introduction_to_the_buildsystem.pot index 5416c45d9b..ac7fa0d82b 100644 --- a/sphinx/templates/development/compiling/introduction_to_the_buildsystem.pot +++ b/sphinx/templates/development/compiling/introduction_to_the_buildsystem.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/compiling/optimizing_for_size.pot b/sphinx/templates/development/compiling/optimizing_for_size.pot index e000bf8197..d7d3223b9e 100644 --- a/sphinx/templates/development/compiling/optimizing_for_size.pot +++ b/sphinx/templates/development/compiling/optimizing_for_size.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/binding_to_external_libraries.pot b/sphinx/templates/development/cpp/binding_to_external_libraries.pot index 35dbeba509..9dcc413407 100644 --- a/sphinx/templates/development/cpp/binding_to_external_libraries.pot +++ b/sphinx/templates/development/cpp/binding_to_external_libraries.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/common_engine_methods_and_macros.pot b/sphinx/templates/development/cpp/common_engine_methods_and_macros.pot index 3c995a4e3b..b82d8f7ae2 100644 --- a/sphinx/templates/development/cpp/common_engine_methods_and_macros.pot +++ b/sphinx/templates/development/cpp/common_engine_methods_and_macros.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/configuring_an_ide/android_studio.pot b/sphinx/templates/development/cpp/configuring_an_ide/android_studio.pot index e28c8b271a..f70f720091 100644 --- a/sphinx/templates/development/cpp/configuring_an_ide/android_studio.pot +++ b/sphinx/templates/development/cpp/configuring_an_ide/android_studio.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/configuring_an_ide/clion.pot b/sphinx/templates/development/cpp/configuring_an_ide/clion.pot index c9fbca5be5..223f1d65ac 100644 --- a/sphinx/templates/development/cpp/configuring_an_ide/clion.pot +++ b/sphinx/templates/development/cpp/configuring_an_ide/clion.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/configuring_an_ide/code_blocks.pot b/sphinx/templates/development/cpp/configuring_an_ide/code_blocks.pot index b49ec73362..a6a658e315 100644 --- a/sphinx/templates/development/cpp/configuring_an_ide/code_blocks.pot +++ b/sphinx/templates/development/cpp/configuring_an_ide/code_blocks.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/configuring_an_ide/index.pot b/sphinx/templates/development/cpp/configuring_an_ide/index.pot index 0f4f5b07c9..520df8cfdc 100644 --- a/sphinx/templates/development/cpp/configuring_an_ide/index.pot +++ b/sphinx/templates/development/cpp/configuring_an_ide/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/configuring_an_ide/kdevelop.pot b/sphinx/templates/development/cpp/configuring_an_ide/kdevelop.pot index 9435e2a969..3e0c2e6773 100644 --- a/sphinx/templates/development/cpp/configuring_an_ide/kdevelop.pot +++ b/sphinx/templates/development/cpp/configuring_an_ide/kdevelop.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/configuring_an_ide/qt_creator.pot b/sphinx/templates/development/cpp/configuring_an_ide/qt_creator.pot index ee7cb79c0c..4c8ee9e46b 100644 --- a/sphinx/templates/development/cpp/configuring_an_ide/qt_creator.pot +++ b/sphinx/templates/development/cpp/configuring_an_ide/qt_creator.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/configuring_an_ide/visual_studio.pot b/sphinx/templates/development/cpp/configuring_an_ide/visual_studio.pot index 6d27e3ea5d..04ea0c75a2 100644 --- a/sphinx/templates/development/cpp/configuring_an_ide/visual_studio.pot +++ b/sphinx/templates/development/cpp/configuring_an_ide/visual_studio.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/configuring_an_ide/visual_studio_code.pot b/sphinx/templates/development/cpp/configuring_an_ide/visual_studio_code.pot index 6e99c8f497..5efcf66b9f 100644 --- a/sphinx/templates/development/cpp/configuring_an_ide/visual_studio_code.pot +++ b/sphinx/templates/development/cpp/configuring_an_ide/visual_studio_code.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -29,82 +29,86 @@ msgid "Importing the project" msgstr "" #: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:12 -msgid "Make sure the C/C++ extension is installed. You can find instructions in the `official documentation `_." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:14 -msgid "From the Visual Studio Code's main screen open the Godot root folder with **File > Open Folder...**." +msgid "Make sure the C/C++ extension is installed. You can find instructions in the `official documentation `_. Alternatively, `clangd `_ can be used instead." msgstr "" #: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:16 +msgid "When using the clangd extension, run ``scons compiledb=yes``." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:17 +msgid "From the Visual Studio Code's main screen open the Godot root folder with **File > Open Folder...**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:19 msgid "Press :kbd:`Ctrl + Shift + P` to open the command prompt window and enter *Configure Task*." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:21 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:24 msgid "Select the **Create tasks.json file from template** option." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:26 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:29 msgid "Then select **Others**." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:31 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:34 msgid "Within the ``tasks.json`` file find the ``\"tasks\"`` array and add a new section to it:" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:67 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:70 msgid "An example of a filled out ``tasks.json``." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:69 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:72 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/development/cpp/configuring_an_ide/visual_studio_code.rst:73 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:76 msgid "Debugging the project" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:75 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:78 msgid "To run and debug the project you need to create a new configuration in the ``launch.json`` file." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:77 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:80 msgid "Press :kbd:`Ctrl + Shift + D` to open the Run panel." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:78 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:81 msgid "If ``launch.json`` file is missing you will be prompted to create a new one." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:83 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:86 msgid "Select **C++ (GDB/LLDB)**. There may be another platform specific option here. If selected, adjust the configuration example provided accordingly." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:85 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:88 msgid "Within the ``launch.json`` file find the ``\"configurations\"`` array and add a new section to it:" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:153 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:156 msgid "An example of a filled out ``launch.json``." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:158 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:161 msgid "Due to sporadic performance issues, it is recommended to use LLDB over GDB on Unix-based systems. Make sure that the `CodeLLDB extension `_ is installed." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:162 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:165 msgid "If you encounter issues with lldb, you may consider using gdb (see the X11_gdb configuration)." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:164 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:167 msgid "Do note that lldb may work better with llvm-based builds. See :ref:`doc_compiling_for_x11` for further information." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:166 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:169 msgid "The name under ``program`` depends on your build configuration, e.g. ``godot.x11.tools.64`` for 64-bit X11 platform with ``tools`` enabled." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:169 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:172 msgid "If you run into any issues, ask for help in one of `Godot's community channels `__." msgstr "" diff --git a/sphinx/templates/development/cpp/configuring_an_ide/xcode.pot b/sphinx/templates/development/cpp/configuring_an_ide/xcode.pot index 98c066723e..e763641aeb 100644 --- a/sphinx/templates/development/cpp/configuring_an_ide/xcode.pot +++ b/sphinx/templates/development/cpp/configuring_an_ide/xcode.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/core_types.pot b/sphinx/templates/development/cpp/core_types.pot index 5654a4eeaf..5aa2173c42 100644 --- a/sphinx/templates/development/cpp/core_types.pot +++ b/sphinx/templates/development/cpp/core_types.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/custom_audiostreams.pot b/sphinx/templates/development/cpp/custom_audiostreams.pot index fccc45a451..e5afef3515 100644 --- a/sphinx/templates/development/cpp/custom_audiostreams.pot +++ b/sphinx/templates/development/cpp/custom_audiostreams.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/custom_godot_servers.pot b/sphinx/templates/development/cpp/custom_godot_servers.pot index 950e159b93..f39817d909 100644 --- a/sphinx/templates/development/cpp/custom_godot_servers.pot +++ b/sphinx/templates/development/cpp/custom_godot_servers.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/custom_modules_in_cpp.pot b/sphinx/templates/development/cpp/custom_modules_in_cpp.pot index 7e223132aa..52ab284d87 100644 --- a/sphinx/templates/development/cpp/custom_modules_in_cpp.pot +++ b/sphinx/templates/development/cpp/custom_modules_in_cpp.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/custom_resource_format_loaders.pot b/sphinx/templates/development/cpp/custom_resource_format_loaders.pot index 47f289af82..ff7225045d 100644 --- a/sphinx/templates/development/cpp/custom_resource_format_loaders.pot +++ b/sphinx/templates/development/cpp/custom_resource_format_loaders.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/index.pot b/sphinx/templates/development/cpp/index.pot index 95ecb62246..772c57e498 100644 --- a/sphinx/templates/development/cpp/index.pot +++ b/sphinx/templates/development/cpp/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/inheritance_class_tree.pot b/sphinx/templates/development/cpp/inheritance_class_tree.pot index 6d58e4f626..aea0ced383 100644 --- a/sphinx/templates/development/cpp/inheritance_class_tree.pot +++ b/sphinx/templates/development/cpp/inheritance_class_tree.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/introduction_to_godot_development.pot b/sphinx/templates/development/cpp/introduction_to_godot_development.pot index af5035aacd..9015f957cd 100644 --- a/sphinx/templates/development/cpp/introduction_to_godot_development.pot +++ b/sphinx/templates/development/cpp/introduction_to_godot_development.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/macos_debug.pot b/sphinx/templates/development/cpp/macos_debug.pot index f1d83671fb..68f518d79a 100644 --- a/sphinx/templates/development/cpp/macos_debug.pot +++ b/sphinx/templates/development/cpp/macos_debug.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/object_class.pot b/sphinx/templates/development/cpp/object_class.pot index 7dd6c86ada..16bdfca975 100644 --- a/sphinx/templates/development/cpp/object_class.pot +++ b/sphinx/templates/development/cpp/object_class.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/using_cpp_profilers.pot b/sphinx/templates/development/cpp/using_cpp_profilers.pot index bf62691ea1..2cb1c63221 100644 --- a/sphinx/templates/development/cpp/using_cpp_profilers.pot +++ b/sphinx/templates/development/cpp/using_cpp_profilers.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/variant_class.pot b/sphinx/templates/development/cpp/variant_class.pot index 9d1165aef7..a51f9b587c 100644 --- a/sphinx/templates/development/cpp/variant_class.pot +++ b/sphinx/templates/development/cpp/variant_class.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/editor/creating_icons.pot b/sphinx/templates/development/editor/creating_icons.pot index 8cdb2c3391..907ceba062 100644 --- a/sphinx/templates/development/editor/creating_icons.pot +++ b/sphinx/templates/development/editor/creating_icons.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/editor/editor_style_guide.pot b/sphinx/templates/development/editor/editor_style_guide.pot index cb0c4ec367..23e5a280ad 100644 --- a/sphinx/templates/development/editor/editor_style_guide.pot +++ b/sphinx/templates/development/editor/editor_style_guide.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/editor/index.pot b/sphinx/templates/development/editor/index.pot index 605f0d50ff..d2bf033de6 100644 --- a/sphinx/templates/development/editor/index.pot +++ b/sphinx/templates/development/editor/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/editor/introduction_to_editor_development.pot b/sphinx/templates/development/editor/introduction_to_editor_development.pot index f6a032198a..549eb2d6f9 100644 --- a/sphinx/templates/development/editor/introduction_to_editor_development.pot +++ b/sphinx/templates/development/editor/introduction_to_editor_development.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/file_formats/gdscript_grammar.pot b/sphinx/templates/development/file_formats/gdscript_grammar.pot index 9387f43f1e..ca5cb41b95 100644 --- a/sphinx/templates/development/file_formats/gdscript_grammar.pot +++ b/sphinx/templates/development/file_formats/gdscript_grammar.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/file_formats/index.pot b/sphinx/templates/development/file_formats/index.pot index c1fe5a75e0..231c971ecc 100644 --- a/sphinx/templates/development/file_formats/index.pot +++ b/sphinx/templates/development/file_formats/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/file_formats/tscn.pot b/sphinx/templates/development/file_formats/tscn.pot index 4d76fc229a..7ab32c8ab5 100644 --- a/sphinx/templates/development/file_formats/tscn.pot +++ b/sphinx/templates/development/file_formats/tscn.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -127,7 +127,7 @@ msgid "``owner``" msgstr "" #: ../../docs/development/file_formats/tscn.rst:82 -msgid "``index`` (if two nodes have the same name)" +msgid "``index`` (sets the order of appearance in the tree. If absent, inherited nodes will take precedence over plain ones)" msgstr "" #: ../../docs/development/file_formats/tscn.rst:83 @@ -175,7 +175,7 @@ msgid "``pose``" msgstr "" #: ../../docs/development/file_formats/tscn.rst:177 -#: ../../docs/development/file_formats/tscn.rst:397 +#: ../../docs/development/file_formats/tscn.rst:398 msgid "``enabled``" msgstr "" @@ -312,122 +312,126 @@ msgid "Vertex positions array" msgstr "" #: ../../docs/development/file_formats/tscn.rst:346 -msgid "Tangents array" +msgid "Normals array" msgstr "" #: ../../docs/development/file_formats/tscn.rst:347 -msgid "Vertex colors array" +msgid "Tangents array" msgstr "" #: ../../docs/development/file_formats/tscn.rst:348 -msgid "UV array 1" +msgid "Vertex colors array" msgstr "" #: ../../docs/development/file_formats/tscn.rst:349 -msgid "UV array 2" +msgid "UV array 1" msgstr "" #: ../../docs/development/file_formats/tscn.rst:350 -msgid "Bone indexes array" +msgid "UV array 2" msgstr "" #: ../../docs/development/file_formats/tscn.rst:351 -msgid "Bone weights array" +msgid "Bone indexes array" msgstr "" #: ../../docs/development/file_formats/tscn.rst:352 +msgid "Bone weights array" +msgstr "" + +#: ../../docs/development/file_formats/tscn.rst:353 msgid "Vertex indexes array" msgstr "" -#: ../../docs/development/file_formats/tscn.rst:354 +#: ../../docs/development/file_formats/tscn.rst:355 msgid "``morph_arrays`` is an array of morphs. Each morph is exactly an ``arrays`` without the vertex indexes array." msgstr "" -#: ../../docs/development/file_formats/tscn.rst:357 +#: ../../docs/development/file_formats/tscn.rst:358 msgid "An example of ArrayMesh:" msgstr "" -#: ../../docs/development/file_formats/tscn.rst:381 +#: ../../docs/development/file_formats/tscn.rst:382 msgid "Animation" msgstr "" -#: ../../docs/development/file_formats/tscn.rst:383 +#: ../../docs/development/file_formats/tscn.rst:384 msgid "An animation resource consists of tracks. Besides, it has ``length``, ``loop`` and ``step`` applied to all the tracks." msgstr "" -#: ../../docs/development/file_formats/tscn.rst:386 +#: ../../docs/development/file_formats/tscn.rst:387 msgid "``length`` and ``step`` are both durations in seconds." msgstr "" -#: ../../docs/development/file_formats/tscn.rst:388 +#: ../../docs/development/file_formats/tscn.rst:389 msgid "Each track is described by a list of key-value pairs in the format ``tracks/Id/Attribute``. Each track includes:" msgstr "" -#: ../../docs/development/file_formats/tscn.rst:391 +#: ../../docs/development/file_formats/tscn.rst:392 msgid "``type``" msgstr "" -#: ../../docs/development/file_formats/tscn.rst:392 +#: ../../docs/development/file_formats/tscn.rst:393 msgid "``path``" msgstr "" -#: ../../docs/development/file_formats/tscn.rst:393 +#: ../../docs/development/file_formats/tscn.rst:394 msgid "``interp``" msgstr "" -#: ../../docs/development/file_formats/tscn.rst:394 +#: ../../docs/development/file_formats/tscn.rst:395 msgid "``keys``" msgstr "" -#: ../../docs/development/file_formats/tscn.rst:395 +#: ../../docs/development/file_formats/tscn.rst:396 msgid "``loop_wrap``" msgstr "" -#: ../../docs/development/file_formats/tscn.rst:396 +#: ../../docs/development/file_formats/tscn.rst:397 msgid "``imported``" msgstr "" -#: ../../docs/development/file_formats/tscn.rst:399 +#: ../../docs/development/file_formats/tscn.rst:400 msgid "The ``type`` must be the first attribute of each track. The value of ``type`` can be:" msgstr "" -#: ../../docs/development/file_formats/tscn.rst:402 +#: ../../docs/development/file_formats/tscn.rst:403 msgid "``transform``" msgstr "" -#: ../../docs/development/file_formats/tscn.rst:403 +#: ../../docs/development/file_formats/tscn.rst:404 msgid "``value``" msgstr "" -#: ../../docs/development/file_formats/tscn.rst:404 +#: ../../docs/development/file_formats/tscn.rst:405 msgid "``method``" msgstr "" -#: ../../docs/development/file_formats/tscn.rst:406 +#: ../../docs/development/file_formats/tscn.rst:407 msgid "The ``path`` has the format ``NodePath(Path/To/Node:attribute)``. It's the path to the animated node or attribute, relative to the root node defined in the AnimationPlayer." msgstr "" -#: ../../docs/development/file_formats/tscn.rst:410 +#: ../../docs/development/file_formats/tscn.rst:411 msgid "The ``interp`` is the method to interpolate frames from the keyframes. It is an enum variable with one of the following values:" msgstr "" -#: ../../docs/development/file_formats/tscn.rst:413 +#: ../../docs/development/file_formats/tscn.rst:414 msgid "``0`` (constant)" msgstr "" -#: ../../docs/development/file_formats/tscn.rst:414 +#: ../../docs/development/file_formats/tscn.rst:415 msgid "``1`` (linear)" msgstr "" -#: ../../docs/development/file_formats/tscn.rst:415 +#: ../../docs/development/file_formats/tscn.rst:416 msgid "``2`` (cubic)" msgstr "" -#: ../../docs/development/file_formats/tscn.rst:417 +#: ../../docs/development/file_formats/tscn.rst:418 msgid "The ``keys`` correspond to the keyframes. It appears as a ``PoolRealArray()``, but may have a different structure for tracks with different types." msgstr "" -#: ../../docs/development/file_formats/tscn.rst:420 +#: ../../docs/development/file_formats/tscn.rst:421 msgid "A Transform track uses every 12 real numbers in the ``keys`` to describe a keyframe. The first number is the timestamp. The second number is the transition followed by a 3-number translation vector, followed by a 4-number rotation quaternion (X, Y, Z, W) and finally a 3-number scale vector. The default transition in a Transform track is 1.0." msgstr "" diff --git a/sphinx/templates/getting_started/first_2d_game/01.project_setup.pot b/sphinx/templates/getting_started/first_2d_game/01.project_setup.pot index 422a7cdd7e..cce122ccb0 100644 --- a/sphinx/templates/getting_started/first_2d_game/01.project_setup.pot +++ b/sphinx/templates/getting_started/first_2d_game/01.project_setup.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/first_2d_game/02.player_scene.pot b/sphinx/templates/getting_started/first_2d_game/02.player_scene.pot index 4d17884664..22f8c9d36a 100644 --- a/sphinx/templates/getting_started/first_2d_game/02.player_scene.pot +++ b/sphinx/templates/getting_started/first_2d_game/02.player_scene.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/first_2d_game/03.coding_the_player.pot b/sphinx/templates/getting_started/first_2d_game/03.coding_the_player.pot index a48ddb0ed6..ebd776459d 100644 --- a/sphinx/templates/getting_started/first_2d_game/03.coding_the_player.pot +++ b/sphinx/templates/getting_started/first_2d_game/03.coding_the_player.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/first_2d_game/04.creating_the_enemy.pot b/sphinx/templates/getting_started/first_2d_game/04.creating_the_enemy.pot index 0f01e21fd1..24bc3e63d4 100644 --- a/sphinx/templates/getting_started/first_2d_game/04.creating_the_enemy.pot +++ b/sphinx/templates/getting_started/first_2d_game/04.creating_the_enemy.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/first_2d_game/05.the_main_game_scene.pot b/sphinx/templates/getting_started/first_2d_game/05.the_main_game_scene.pot index 6e6f12d302..2c9b4c4375 100644 --- a/sphinx/templates/getting_started/first_2d_game/05.the_main_game_scene.pot +++ b/sphinx/templates/getting_started/first_2d_game/05.the_main_game_scene.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -121,7 +121,7 @@ msgid "You can assign this property's value in two ways:" msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:200 -msgid "Drag ``Mob.tscn`` from the \"FileSystem\" panel and drop it in the ``Mob`` property ." +msgid "Drag ``Mob.tscn`` from the \"FileSystem\" dock and drop it in the **Mob Scene** property." msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:202 diff --git a/sphinx/templates/getting_started/first_2d_game/06.heads_up_display.pot b/sphinx/templates/getting_started/first_2d_game/06.heads_up_display.pot index dd8d3abc58..c3123c1727 100644 --- a/sphinx/templates/getting_started/first_2d_game/06.heads_up_display.pot +++ b/sphinx/templates/getting_started/first_2d_game/06.heads_up_display.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/first_2d_game/07.finishing-up.pot b/sphinx/templates/getting_started/first_2d_game/07.finishing-up.pot index 85db15b237..cb2000ec02 100644 --- a/sphinx/templates/getting_started/first_2d_game/07.finishing-up.pot +++ b/sphinx/templates/getting_started/first_2d_game/07.finishing-up.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/first_2d_game/index.pot b/sphinx/templates/getting_started/first_2d_game/index.pot index 4e55c078ab..24ce1c7b90 100644 --- a/sphinx/templates/getting_started/first_2d_game/index.pot +++ b/sphinx/templates/getting_started/first_2d_game/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -42,7 +42,7 @@ msgid "This project is an introduction to the Godot engine. It assumes that you msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:19 -msgid "The game is called \"Dodge the Creeps!\". Your character must move and avoid the enemies for as long as possible. Here is a preview of the final result:" +msgid "The game is called \"Dodge the Creeps!\". Your character must move and avoid the enemies for as long as possible." msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:22 diff --git a/sphinx/templates/getting_started/first_3d_game/01.game_setup.pot b/sphinx/templates/getting_started/first_3d_game/01.game_setup.pot index 307a70cc05..d1e601cb02 100644 --- a/sphinx/templates/getting_started/first_3d_game/01.game_setup.pot +++ b/sphinx/templates/getting_started/first_3d_game/01.game_setup.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/first_3d_game/02.player_input.pot b/sphinx/templates/getting_started/first_3d_game/02.player_input.pot index 2c40d540c6..c78ab9c851 100644 --- a/sphinx/templates/getting_started/first_3d_game/02.player_input.pot +++ b/sphinx/templates/getting_started/first_3d_game/02.player_input.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/first_3d_game/03.player_movement_code.pot b/sphinx/templates/getting_started/first_3d_game/03.player_movement_code.pot index dcf837e30b..9f8cf068ad 100644 --- a/sphinx/templates/getting_started/first_3d_game/03.player_movement_code.pot +++ b/sphinx/templates/getting_started/first_3d_game/03.player_movement_code.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/first_3d_game/04.mob_scene.pot b/sphinx/templates/getting_started/first_3d_game/04.mob_scene.pot index 0edeb59152..0ec411f9af 100644 --- a/sphinx/templates/getting_started/first_3d_game/04.mob_scene.pot +++ b/sphinx/templates/getting_started/first_3d_game/04.mob_scene.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/first_3d_game/05.spawning_mobs.pot b/sphinx/templates/getting_started/first_3d_game/05.spawning_mobs.pot index e65b47f2ff..97dcb3665f 100644 --- a/sphinx/templates/getting_started/first_3d_game/05.spawning_mobs.pot +++ b/sphinx/templates/getting_started/first_3d_game/05.spawning_mobs.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/first_3d_game/06.jump_and_squash.pot b/sphinx/templates/getting_started/first_3d_game/06.jump_and_squash.pot index cfcebd8abf..a637e9ef2a 100644 --- a/sphinx/templates/getting_started/first_3d_game/06.jump_and_squash.pot +++ b/sphinx/templates/getting_started/first_3d_game/06.jump_and_squash.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/first_3d_game/07.killing_player.pot b/sphinx/templates/getting_started/first_3d_game/07.killing_player.pot index db57963b3c..2f353dff6f 100644 --- a/sphinx/templates/getting_started/first_3d_game/07.killing_player.pot +++ b/sphinx/templates/getting_started/first_3d_game/07.killing_player.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -80,7 +80,7 @@ msgid "The wider the cylinder, the more easily the player will get killed." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:41 -msgid "Next, select the *MobDetector* node again, and in the *Inspector*, turn off its *Monitorable* property. This makes it so other physics nodes cannot detect the area. The complementary *Monitoring* property allows it to detect collisions. Then, remove the *Collision -> Layer* and sets the mask to the \"enemies\" layer." +msgid "Next, select the *MobDetector* node again, and in the *Inspector*, turn off its *Monitorable* property. This makes it so other physics nodes cannot detect the area. The complementary *Monitoring* property allows it to detect collisions. Then, remove the *Collision -> Layer* and set the mask to the \"enemies\" layer." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:47 diff --git a/sphinx/templates/getting_started/first_3d_game/08.score_and_replay.pot b/sphinx/templates/getting_started/first_3d_game/08.score_and_replay.pot index c088b3e323..82b8526f82 100644 --- a/sphinx/templates/getting_started/first_3d_game/08.score_and_replay.pot +++ b/sphinx/templates/getting_started/first_3d_game/08.score_and_replay.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -40,8 +40,8 @@ msgstr "" msgid "|image0|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:452 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:452 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:457 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:457 msgid "image0" msgstr "" @@ -53,8 +53,8 @@ msgstr "" msgid "|image1|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:453 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:453 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:458 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:458 msgid "image1" msgstr "" @@ -70,8 +70,8 @@ msgstr "" msgid "|image2|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:454 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:454 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:459 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:459 msgid "image2" msgstr "" @@ -83,8 +83,8 @@ msgstr "" msgid "|image3|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:455 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:455 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:460 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:460 msgid "image3" msgstr "" @@ -96,8 +96,8 @@ msgstr "" msgid "|image4|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:456 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:456 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:461 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:461 msgid "image4" msgstr "" @@ -117,8 +117,8 @@ msgstr "" msgid "|image5|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:457 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:457 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:462 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:462 msgid "image5" msgstr "" @@ -130,8 +130,8 @@ msgstr "" msgid "|image6|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:458 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:458 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:463 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:463 msgid "image6" msgstr "" @@ -151,8 +151,8 @@ msgstr "" msgid "|image7|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:459 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:459 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:464 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:464 msgid "image7" msgstr "" @@ -164,347 +164,363 @@ msgstr "" msgid "|image8|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:460 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:460 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:465 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:465 msgid "image8" msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:75 -msgid "This one expects a font file like the ones you have on your computer. Two common font file formats are TrueType Font (TTF) and OpenType Font (OTF)." +msgid "This one expects a font file like the ones you have on your computer. DynamicFont supports the following formats:" msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:78 -msgid "In the *FileSystem* dock, Expand the ``fonts`` directory and click and drag the ``Montserrat-Medium.ttf`` file we included in the project onto the *Font Data*. The text will reappear in the theme preview." +msgid "TrueType (``.ttf``)" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:82 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:79 +msgid "OpenType (``.otf``)" +msgstr "" + +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:80 +msgid "Web Open Font Format 1 (``.woff``)" +msgstr "" + +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:81 +msgid "Web Open Font Format 2 (``.woff2``, since Godot 3.5)" +msgstr "" + +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:83 +msgid "In the *FileSystem* dock, expand the ``fonts`` directory and click and drag the ``Montserrat-Medium.ttf`` file we included in the project onto the *Font Data*. The text will reappear in the theme preview." +msgstr "" + +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:87 msgid "The text is a bit small. Set the *Settings -> Size* to ``22`` pixels to increase the text's size." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:85 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:90 msgid "|image9|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:461 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:461 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:466 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:466 msgid "image9" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:88 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:93 msgid "Keeping track of the score" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:90 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:95 msgid "Let's work on the score next. Attach a new script to the *ScoreLabel* and define the ``score`` variable." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:107 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:112 msgid "The score should increase by ``1`` every time we squash a monster. We can use their ``squashed`` signal to know when that happens. However, as we instantiate monsters from the code, we cannot do the connection in the editor." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:111 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:116 msgid "Instead, we have to make the connection from the code every time we spawn a monster." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:114 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:119 msgid "Open the script ``Main.gd``. If it's still open, you can click on its name in the script editor's left column." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:117 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:122 msgid "|image10|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:462 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:462 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:467 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:467 msgid "image10" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:119 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:124 msgid "Alternatively, you can double-click the ``Main.gd`` file in the *FileSystem* dock." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:122 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:127 msgid "At the bottom of the ``_on_MobTimer_timeout()`` function, add the following line." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:142 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:147 msgid "This line means that when the mob emits the ``squashed`` signal, the *ScoreLabel* node will receive it and call the function ``_on_Mob_squashed()``." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:145 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:150 msgid "Head back to the ``ScoreLabel.gd`` script to define the ``_on_Mob_squashed()`` callback function." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:148 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:153 msgid "There, we increment the score and update the displayed text." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:165 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:170 msgid "The second line uses the value of the ``score`` variable to replace the placeholder ``%s``. When using this feature, Godot automatically converts values to text, which is convenient to output text in labels or using the ``print()`` function." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:172 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:177 msgid "You can learn more about string formatting here: :ref:`doc_gdscript_printf`." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:174 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:179 msgid "You can now play the game and squash a few enemies to see the score increase." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:177 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:182 msgid "|image11|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:463 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:463 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:468 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:468 msgid "image11" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:181 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:186 msgid "In a complex game, you may want to completely separate your user interface from the game world. In that case, you would not keep track of the score on the label. Instead, you may want to store it in a separate, dedicated object. But when prototyping or when your project is simple, it is fine to keep your code simple. Programming is always a balancing act." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:188 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:193 msgid "Retrying the game" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:190 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:195 msgid "We'll now add the ability to play again after dying. When the player dies, we'll display a message on the screen and wait for input." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:193 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:198 msgid "Head back to the *Main* scene, select the *UserInterface* node, add a *ColorRect* node as a child of it and name it *Retry*. This node fills a rectangle with a uniform color and will serve as an overlay to darken the screen." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:198 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:203 msgid "To make it span over the whole viewport, you can use the *Layout* menu in the toolbar." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:201 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:206 msgid "|image12|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:464 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:464 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:469 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:469 msgid "image12" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:203 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:208 msgid "Open it and apply the *Full Rect* command." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:205 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:210 msgid "|image13|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:465 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:465 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:470 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:470 msgid "image13" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:207 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:212 msgid "Nothing happens. Well, almost nothing: only the four green pins move to the corners of the selection box." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:210 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:215 msgid "|image14|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:466 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:466 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:471 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:471 msgid "image14" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:212 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:217 msgid "This is because UI nodes (all the ones with a green icon) work with anchors and margins relative to their parent's bounding box. Here, the *UserInterface* node has a small size and the *Retry* one is limited by it." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:216 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:221 msgid "Select the *UserInterface* and apply *Layout -> Full Rect* to it as well. The *Retry* node should now span the whole viewport." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:219 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:224 msgid "Let's change its color so it darkens the game area. Select *Retry* and in the *Inspector*, set its *Color* to something both dark and transparent. To do so, in the color picker, drag the *A* slider to the left. It controls the color's alpha channel, that is to say, its opacity." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:224 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:229 msgid "|image15|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:467 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:467 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:472 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:472 msgid "image15" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:226 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:231 msgid "Next, add a *Label* as a child of *Retry* and give it the *Text* \"Press Enter to retry.\"" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:229 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:234 msgid "|image16|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:468 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:468 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:473 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:473 msgid "image16" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:231 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:236 msgid "To move it and anchor it in the center of the screen, apply *Layout -> Center* to it." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:234 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:239 msgid "|image17|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:469 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:469 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:474 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:474 msgid "image17" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:237 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:242 msgid "Coding the retry option" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:239 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:244 msgid "We can now head to the code to show and hide the *Retry* node when the player dies and plays again." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:242 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:247 msgid "Open the script ``Main.gd``. First, we want to hide the overlay at the start of the game. Add this line to the ``_ready()`` function." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:260 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:265 msgid "Then, when the player gets hit, we show the overlay." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:277 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:282 msgid "Finally, when the *Retry* node is visible, we need to listen to the player's input and restart the game if they press enter. To do this, we use the built-in ``_unhandled_input()`` callback." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:281 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:286 msgid "If the player pressed the predefined ``ui_accept`` input action and *Retry* is visible, we reload the current scene." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:303 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:308 msgid "The function ``get_tree()`` gives us access to the global :ref:`SceneTree ` object, which allows us to reload and restart the current scene." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:308 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:313 msgid "Adding music" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:310 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:315 msgid "To add music that plays continuously in the background, we're going to use another feature in Godot: :ref:`autoloads `." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:313 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:318 msgid "To play audio, all you need to do is add an *AudioStreamPlayer* node to your scene and attach an audio file to it. When you start the scene, it can play automatically. However, when you reload the scene, like we do to play again, the audio nodes are also reset, and the music starts back from the beginning." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:318 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:323 msgid "You can use the autoload feature to have Godot load a node or a scene automatically at the start of the game, outside the current scene. You can also use it to create globally accessible objects." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:322 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:327 msgid "Create a new scene by going to the *Scene* menu and clicking *New Scene*." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:324 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:329 msgid "|image18|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:470 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:470 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:475 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:475 msgid "image18" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:326 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:331 msgid "Click the *Other Node* button to create an *AudioStreamPlayer* and rename it to *MusicPlayer*." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:329 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:334 msgid "|image19|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:471 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:471 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:476 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:476 msgid "image19" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:331 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:336 msgid "We included a music soundtrack in the ``art/`` directory, ``House In a Forest Loop.ogg``. Click and drag it onto the *Stream* property in the *Inspector*. Also, turn on *Autoplay* so the music plays automatically at the start of the game." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:336 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:341 msgid "|image20|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:472 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:472 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:477 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:477 msgid "image20" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:338 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:343 msgid "Save the scene as ``MusicPlayer.tscn``." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:340 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:345 msgid "We have to register it as an autoload. Head to the *Project -> Project Settings…* menu and click on the *Autoload* tab." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:343 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:348 msgid "In the *Path* field, you want to enter the path to your scene. Click the folder icon to open the file browser and double-click on ``MusicPlayer.tscn``. Then, click the *Add* button on the right to register the node." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:347 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:352 msgid "|image21|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:473 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:473 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:478 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:478 msgid "image21" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:349 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:354 msgid "If you run the game now, the music will play automatically. And even when you lose and retry, it keeps going." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:352 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:357 msgid "Before we wrap up this lesson, here's a quick look at how it works under the hood. When you run the game, your *Scene* dock changes to give you two tabs: *Remote* and *Local*." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:356 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:361 msgid "|image22|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:474 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:474 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:479 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:479 msgid "image22" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:358 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:363 msgid "The *Remote* tab allows you to visualize the node tree of your running game. There, you will see the *Main* node and everything the scene contains and the instantiated mobs at the bottom." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:362 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:367 msgid "|image23|" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:475 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:475 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:480 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:480 msgid "image23" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:364 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:369 msgid "At the top are the autoloaded *MusicPlayer* and a *root* node, which is your game's viewport." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:367 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:372 msgid "And that does it for this lesson. In the next part, we'll add an animation to make the game both look and feel much nicer." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:370 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:375 msgid "Here is the complete ``Main.gd`` script for reference." msgstr "" diff --git a/sphinx/templates/getting_started/first_3d_game/09.adding_animations.pot b/sphinx/templates/getting_started/first_3d_game/09.adding_animations.pot index c21963891e..1035a20dae 100644 --- a/sphinx/templates/getting_started/first_3d_game/09.adding_animations.pot +++ b/sphinx/templates/getting_started/first_3d_game/09.adding_animations.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -46,7 +46,7 @@ msgid "The engine comes with tools to author animations in the editor. You can t msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:20 -msgid "Open the player scene, select the player node, and add an animation player node." +msgid "Open the player scene, select the player node, and add an *AnimationPlayer* node." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:22 @@ -420,7 +420,7 @@ msgid "For example, both the *Mob* and the *Player* scenes have a *Pivot* and a msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:248 -msgid "Open the *Mob* scene, select the animation player node and open the float animation. Next, click on *Animation -> Copy*. Then Open ``Player.tscn`` and open its animation player. Click *Animation -> Paste*. That's it; all monsters will now play the float animation." +msgid "Open the *Player* scene, select the animation player node and open the \"float\" animation. Next, click on **Animation > Copy**. Then open ``Mob.tscn`` and open its animation player. Click **Animation > Paste**. That's it; all monsters will now play the float animation." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:253 diff --git a/sphinx/templates/getting_started/first_3d_game/going_further.pot b/sphinx/templates/getting_started/first_3d_game/going_further.pot index 3b2012461d..6f6bc22543 100644 --- a/sphinx/templates/getting_started/first_3d_game/going_further.pot +++ b/sphinx/templates/getting_started/first_3d_game/going_further.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/first_3d_game/index.pot b/sphinx/templates/getting_started/first_3d_game/index.pot index 40b8ee8edf..e5d9603079 100644 --- a/sphinx/templates/getting_started/first_3d_game/index.pot +++ b/sphinx/templates/getting_started/first_3d_game/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/introduction/first_look_at_the_editor.pot b/sphinx/templates/getting_started/introduction/first_look_at_the_editor.pot index 8b8b7fac9a..3bafc044bd 100644 --- a/sphinx/templates/getting_started/introduction/first_look_at_the_editor.pot +++ b/sphinx/templates/getting_started/introduction/first_look_at_the_editor.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -38,7 +38,7 @@ msgid "When you launch Godot, the first window you see is the Project Manager. I msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:27 -msgid "At the top of the window, there is another tab named \"Templates\". You can search for demo projects in the open-source asset library, which includes many projects developed by the community." +msgid "At the top of the window, there is another tab named \"Asset Library Projects\". In the open-source asset library you can search for demo projects, templates, and completed projects, including many that are developed by the community." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:33 diff --git a/sphinx/templates/getting_started/introduction/godot_design_philosophy.pot b/sphinx/templates/getting_started/introduction/godot_design_philosophy.pot index f805442994..a5acbf58cb 100644 --- a/sphinx/templates/getting_started/introduction/godot_design_philosophy.pot +++ b/sphinx/templates/getting_started/introduction/godot_design_philosophy.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -64,8 +64,8 @@ msgstr "" msgid "|image0|" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:183 -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:183 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:194 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:194 msgid "image0" msgstr "" @@ -81,8 +81,8 @@ msgstr "" msgid "|image1|" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:184 -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:184 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:195 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:195 msgid "image1" msgstr "" @@ -102,8 +102,8 @@ msgstr "" msgid "|image2|" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:185 -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:185 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:196 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:196 msgid "image2" msgstr "" @@ -127,8 +127,8 @@ msgstr "" msgid "|image3|" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:186 -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:186 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:197 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:197 msgid "image3" msgstr "" @@ -144,8 +144,8 @@ msgstr "" msgid "|image4|" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:187 -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:187 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:198 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:198 msgid "image4" msgstr "" @@ -153,76 +153,84 @@ msgstr "" msgid "*A State Machine editor plugin in Godot 2 by kubecz3k. It lets you manage states and transitions visually.*" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:112 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:114 +msgid "`Godot 4.0 will remove VisualScript from core entirely. `__ As a result, creating new projects using visual scripting in Godot is not recommended. Future Godot 4.x releases may have VisualScript reimplemented as an extension." +msgstr "" + +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:118 +msgid "While Godot 3.x will keep VisualScript supported, we recommend :ref:`trying out GDScript ` instead, especially if you intend to migrate your project to Godot 4." +msgstr "" + +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:123 msgid "Open source" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:114 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:125 msgid "Godot offers a fully open source codebase under the **MIT license**. This means all the technologies that ship with it have to be Free (as in freedom) as well. For the most part, they're developed from the ground up by contributors." msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:119 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:130 msgid "Anyone can plug in proprietary tools for the needs of their projects — they just won't ship with the engine. This may include Google AdMob, or FMOD. Any of these can come as third-party plugins instead." msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:124 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:135 msgid "On the other hand, an open codebase means you can **learn from and extend the engine** to your heart's content. You can also debug games easily, as Godot will print errors with a stack trace, even if they come from the engine itself." msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:130 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:141 msgid "This **does not affect the work you do with Godot** in any way: there's no strings attached to the engine or anything you make with it." msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:134 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:145 msgid "Community-driven" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:136 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:147 msgid "**Godot is made by its community, for the community, and for all game creators out there.** It's the needs of the users and open discussions that drive the core updates. New features from the core developers often focus on what will benefit the most users first." msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:141 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:152 msgid "That said, although a handful of core developers work on it full-time, the project has over 600 contributors at the time of writing. Benevolent programmers work on features they may need themselves, so you'll see improvements in all corners of the engine at the same time in every major release." msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:148 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:159 msgid "The Godot editor is a Godot game" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:150 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:161 msgid "The Godot editor runs on the game engine. It uses the engine's own UI system, it can hot-reload code and scenes when you test your projects, or run game code in the editor. This means you can **use the same code** and scenes for your games, or **build plugins and extend the editor.**" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:155 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:166 msgid "This leads to a reliable and flexible UI system, as it powers the editor itself. With the ``tool`` keyword, you can run any game code in the editor." msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:158 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:169 msgid "|image5|" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:188 -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:188 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:199 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:199 msgid "image5" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:160 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:171 msgid "*RPG in a Box is a voxel RPG editor made with Godot 2. It uses Godot's UI tools for its node-based programming system and for the rest of the interface.*" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:164 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:175 msgid "Put the ``tool`` keyword at the top of any GDScript file and it will run in the editor. This lets you import and export plugins, create plugins like custom level editors, or create scripts with the same nodes and API you use in your projects." msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:171 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:182 msgid "The editor is fully written in C++ and is statically compiled into the binary. This means you can't import it as a typical project that would have a ``project.godot`` file." msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:176 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:187 msgid "Separate 2D and 3D engines" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:178 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:189 msgid "Godot offers dedicated 2D and 3D rendering engines. As a result, **the base unit for 2D scenes is pixels.** Even though the engines are separate, you can render 2D in 3D, 3D in 2D, and overlay 2D sprites and interfaces over your 3D world." msgstr "" diff --git a/sphinx/templates/getting_started/introduction/index.pot b/sphinx/templates/getting_started/introduction/index.pot index d0fcb3afe3..df1bbf27a8 100644 --- a/sphinx/templates/getting_started/introduction/index.pot +++ b/sphinx/templates/getting_started/introduction/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/introduction/introduction_to_godot.pot b/sphinx/templates/getting_started/introduction/introduction_to_godot.pot index 9ed84b741d..2feb6ac1dc 100644 --- a/sphinx/templates/getting_started/introduction/introduction_to_godot.pot +++ b/sphinx/templates/getting_started/introduction/introduction_to_godot.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -61,86 +61,78 @@ msgid "As for applications, the open-source pixel art drawing program Pixelorama msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:47 -msgid "You can find many more examples in the official showcase videos:" -msgstr "" - -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:49 -msgid "`April 2020 desktop and console showcase`_" +msgid "You can find many more examples in the `official showcase videos`_." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:50 -msgid "`April 2020 mobile showcase`_" -msgstr "" - -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:53 msgid "How does it work and look?" msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:55 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:52 msgid "Godot comes with a fully-fledged game editor with integrated tools to answer the most common needs. It includes a code editor, an animation editor, a tilemap editor, a shader editor, a debugger, a profiler, and more." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:61 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:58 msgid "The team strives to offer a feature-rich game editor with a consistent user experience. While there is always room for improvement, the user interface keeps getting refined." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:65 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:62 msgid "Of course, if you prefer, you can work with external programs. We officially support importing 3D scenes designed in Blender_ and maintain plugins to code in VSCode_ and Emacs_ for GDScript and C#. We also support Visual Studio for C# on Windows." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:73 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:70 msgid "Programming languages" msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:75 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:72 msgid "Let's talk about the available programming languages." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:77 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:74 msgid "You can code your games using :ref:`GDScript `, a Godot-specific and tightly integrated language with a lightweight syntax, or :ref:`C# `, which is popular in the games industry. These are the two main scripting languages we support." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:82 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:79 msgid "Godot also supports a node-based visual programming language named :ref:`VisualScript `." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:85 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:82 msgid "With the :ref:`GDNative ` technology, you can also write gameplay or high-performance algorithms in C or C++ without recompiling the engine. You can use this technology to integrate third-party libraries and other Software Development Kits (SDK) in the engine." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:90 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:87 msgid "Of course, you can also directly add modules and features to the engine, as it's completely free and open-source." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:93 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:90 msgid "These are the five officially supported programming languages. The community maintains support for many more. For more information, see :ref:`GDNative third-party bindings `." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:99 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:96 msgid "What do I need to know to use Godot?" msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:101 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:98 msgid "Godot is a feature-packed game engine. With its thousands of features, there is a lot to learn. To make the most of it, you need good programming foundations. While we try to make the engine accessible, you will benefit a lot from knowing how to think like a programmer first." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:106 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:103 msgid "Godot relies on the object-oriented programming paradigm. Being comfortable with concepts such as classes and objects will help you code efficiently in it." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:109 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:106 msgid "If you are entirely new to programming, we recommend following the `CS50 open courseware`_ from Harvard University. It's a great free course that will teach you everything you need to know to be off to a good start. It will save you countless hours and hurdles learning any game engine afterward." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:114 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:111 msgid "In CS50, you will learn multiple programming languages. Don't be afraid of that: programming languages have many similarities. The skills you learn with one language transfer well to others." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:118 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:115 msgid "We will provide you with more Godot-specific learning resources in :ref:`doc_learning_new_features`." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:121 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:118 msgid "In the next part, you will get an overview of the engine's essential concepts." msgstr "" diff --git a/sphinx/templates/getting_started/introduction/key_concepts_overview.pot b/sphinx/templates/getting_started/introduction/key_concepts_overview.pot index bf61ae157c..d8d75d8c84 100644 --- a/sphinx/templates/getting_started/introduction/key_concepts_overview.pot +++ b/sphinx/templates/getting_started/introduction/key_concepts_overview.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/introduction/learning_new_features.pot b/sphinx/templates/getting_started/introduction/learning_new_features.pot index fd6c363382..5aad7959dc 100644 --- a/sphinx/templates/getting_started/introduction/learning_new_features.pot +++ b/sphinx/templates/getting_started/introduction/learning_new_features.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/index.pot b/sphinx/templates/getting_started/step_by_step/index.pot index 22b195faa1..a4e5f8f8af 100644 --- a/sphinx/templates/getting_started/step_by_step/index.pot +++ b/sphinx/templates/getting_started/step_by_step/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/instancing.pot b/sphinx/templates/getting_started/step_by_step/instancing.pot index 1975af29dd..7f6070b78f 100644 --- a/sphinx/templates/getting_started/step_by_step/instancing.pot +++ b/sphinx/templates/getting_started/step_by_step/instancing.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -25,15 +25,15 @@ msgid "In the previous part, we saw that a scene is a collection of nodes organi msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:11 -msgid "You can create as many scenes as you'd like and save them to the disk with the ``.tscn`` extension, which stands for \"text scene\". The ``Label.tscn`` file from the previous lesson was an example. We call those files \"Packed Scenes\" as they pack information about your scene's content." +msgid "You can create as many scenes as you'd like and save them as files with the ``.tscn`` extension, which stands for \"text scene\". The ``Label.tscn`` file from the previous lesson was an example. We call those files \"Packed Scenes\" as they pack information about your scene's content." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:16 -msgid "Here's the example of a ball. It's composed of a :ref:`RigidBody2D ` node as its root named Ball, which allows the ball to fall and bounce on walls, a :ref:`Sprite ` node, and a :ref:`CollisionShape2D `." +msgid "Here's an example of a ball. It's composed of a :ref:`RigidBody2D ` node as its root named Ball, which allows the ball to fall and bounce on walls, a :ref:`Sprite ` node, and a :ref:`CollisionShape2D `." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:23 -msgid "Once you saved a scene, it works as a blueprint: you can reproduce it in other scenes as many times as you'd like. Replicating an object from a template like so is called **instancing**." +msgid "Once you saved a scene, it works as a blueprint: you can reproduce it in other scenes as many times as you'd like. Replicating an object from a template like this is called **instancing**." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:29 @@ -49,7 +49,7 @@ msgid "In practice" msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:41 -msgid "Let's use instancing in practice to see how it works exactly in Godot. We invite you to download the ball's sample project we prepared for you: :download:`instancing.zip `." +msgid "Let's use instancing in practice to see how it works in Godot. We invite you to download the ball's sample project we prepared for you: :download:`instancing.zip `." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:45 @@ -117,7 +117,7 @@ msgid "Change the properties of one ball without affecting the others using the msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:110 -msgid "Change the default properties of every Ball by opening ``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." +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:114 diff --git a/sphinx/templates/getting_started/step_by_step/nodes_and_scenes.pot b/sphinx/templates/getting_started/step_by_step/nodes_and_scenes.pot index e18293dcf5..09e2bebb5b 100644 --- a/sphinx/templates/getting_started/step_by_step/nodes_and_scenes.pot +++ b/sphinx/templates/getting_started/step_by_step/nodes_and_scenes.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -101,15 +101,15 @@ 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:73 -msgid "In an empty scene, the Scene dock on the left shows several options to add a root node quickly. \"2D Scene\" adds a Node2D node, \"3D Scene\" adds a Spatial node, \"User Interface\" adds a Control node, and \"Other Node\" lets you select any node. It is equivalent to pressing the \"Add Child Node\" button. These presets are here for convenience; they are not mandatory." +msgid "In an empty scene, the Scene dock on the left shows several options to add a root node quickly. \"2D Scene\" adds a Node2D node, \"3D Scene\" adds a Spatial node, and \"User Interface\" adds a Control node. These presets are here for convenience; they are not mandatory. \"Other Node\" lets you select any node to be the root node. In an empty scene, \"Other Node\" is equivalent to pressing the \"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:79 +#: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:81 msgid "We're going to add a single Label node to our scene. Its function is to draw text on the screen." msgstr "" -#: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:82 -msgid "Press the \"Add Child Node\" button at the top left of the Scene dock to create a node. This button adds the chosen node as a child of the currently selected one or, in an empty scene, as the root." +#: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:84 +msgid "Press the \"Add Child Node\" button or \"Other Node\" to create a root node." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:88 @@ -157,7 +157,7 @@ msgid "Running the scene" msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:132 -msgid "Everything's ready to run the scene! Press the Play Scene button in the top-right of the screen or press :kbd:`F6`." +msgid "Everything's ready to run the scene! Press the Play Scene button in the top-right of the screen or press :kbd:`F6` (:kbd:`Cmd + R` on macOS)." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:137 @@ -189,7 +189,7 @@ msgid "Setting the main scene" msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:167 -msgid "To run our test scene, we used the Play Scene button. Another button next to it allows you to set and run the project's main scene. You can press :kbd:`F5` to do so." +msgid "To run our test scene, we used the Play Scene button. Another button next to it allows you to set and run the project's main scene. You can press :kbd:`F5` (:kbd:`Cmd + B` on macOS) to do so." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:173 diff --git a/sphinx/templates/getting_started/step_by_step/scripting_first_script.pot b/sphinx/templates/getting_started/step_by_step/scripting_first_script.pot index 05c6ef2081..c72931a7c4 100644 --- a/sphinx/templates/getting_started/step_by_step/scripting_first_script.pot +++ b/sphinx/templates/getting_started/step_by_step/scripting_first_script.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,202 +21,206 @@ msgid "Creating your first script" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:21 -msgid "In this lesson, you will code your first script to make the Godot icon turn in circles using GDScript. As we mentioned :ref:`in the introduction `, we assume you have programming foundations." +msgid "In this lesson, you will code your first script to make the Godot icon turn in circles using GDScript. As we mentioned :ref:`in the introduction `, we assume you have programming foundations. The equivalent C# code has been included in another tab for convenience." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:27 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:28 msgid "To learn more about GDScript, its keywords, and its syntax, head to the :ref:`GDScript reference`." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:31 +msgid "To learn more about C#, head to the :ref:`C# basics ` page." +msgstr "" + +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:34 msgid "Project setup" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:33 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:36 msgid "Please create a new project to start with a clean slate. Your project should contain one picture: the Godot icon, which we often use for prototyping in the community." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:39 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:42 msgid "We need to create a Sprite node to display it in the game. In the Scene dock, click the Other Node button." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:44 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:47 msgid "Type \"Sprite\" in the search bar to filter nodes and double-click on Sprite to create the node." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:49 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:52 msgid "Your Scene tab should now only have a Sprite node." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:53 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:56 msgid "A Sprite 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.png`` from the FileSystem dock onto the Texture slot." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:61 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:64 msgid "You can create Sprite nodes automatically by dragging and dropping images on the viewport." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:66 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:69 msgid "Then, click and drag the icon in the viewport to center it in the game view." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:71 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:74 msgid "Creating a new script" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:73 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:76 msgid "To create and attach a new script to our node, right-click on Sprite in the scene dock and select \"Attach Script\"." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:78 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:81 msgid "The 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:81 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:84 msgid "Change the Template from Default to Empty to start with a clean file. Leave the other options by default and click the Create button to create the script." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:86 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:89 msgid "The Script workspace should appear with your new ``Sprite.gd`` file open and the following line of code:" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:94 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:116 msgid "Every GDScript file is implicitly a class. The ``extends`` keyword defines the class this script inherits or extends. In this case, it's ``Sprite``, meaning our script will get access to all the properties and functions of the Sprite node, including classes it extends, like ``Node2D``, ``CanvasItem``, and ``Node``." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:100 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:122 msgid "In GDScript, if you omit the line with the ``extends`` keyword, your class will implicitly extend :ref:`Reference `, which Godot uses to manage your application's memory." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:104 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:126 msgid "Inherited properties include the ones you can see in the Inspector dock, like our node's ``texture``." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:109 -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\", lowercase, and words separated by an underscore." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:113 -msgid "You can hover any property's name in the Inspector to see a description and its identifier in code." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:117 -msgid "Hello, world!" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:119 -msgid "Our script currently doesn't do anything. Let's make it print the text \"Hello, world!\" to the Output bottom panel to get started." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:122 -msgid "Add the following code to your script:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:130 -msgid "Let's break it down. The ``func`` keyword defines a new function named ``_init``. This is a special name for our class's constructor. The engine calls ``_init()`` on every object or node upon creating it in memory, if you define this function." +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:131 +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." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:135 -msgid "GDScript is an indent-based language. The tab at the start of the line that says ``print()`` is necessary for the code to work. If you omit it or don't indent a line correctly, the editor will highlight it in red and display the following error message: \"Unexpected indentation.\"" +msgid "You can hover any property's name in the Inspector to see a description and its identifier in code." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:140 -msgid "Save the scene if you haven't already, then press :kbd:`F6` to run it. Look at the Output bottom panel that expands. It should display \"Hello, world!\"" +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:139 +msgid "Hello, world!" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:145 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:141 +msgid "Our script currently doesn't do anything. Let's make it print the text \"Hello, world!\" to the Output bottom panel to get started." +msgstr "" + +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:144 +msgid "Add the following code to your script:" +msgstr "" + +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:160 +msgid "Let's break it down. The ``func`` keyword defines a new function named ``_init``. This is a special name for our class's constructor. The engine calls ``_init()`` on every object or node upon creating it in memory, if you define this function." +msgstr "" + +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:165 +msgid "GDScript is an indent-based language. The tab at the start of the line that says ``print()`` is necessary for the code to work. If you omit it or don't indent a line correctly, the editor will highlight it in red and display the following error message: \"Indented block expected\"." +msgstr "" + +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:170 +msgid "Save the scene 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!\"." +msgstr "" + +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:176 msgid "Delete the ``_init()`` function, so you're only left with the line ``extends Sprite``." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:149 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:180 msgid "Turning around" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:151 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:182 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." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:163 -msgid "Member variables sit at the top of the script, before functions. Every node instance with this script attached to it will have its own copy of the ``speed`` and ``angular_speed`` properties." +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:197 +msgid "Member variables sit near the top of the script, after any \"extends\" lines, but before functions. Every node instance with this script attached to it will have its own copy of the ``speed`` and ``angular_speed`` properties." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:167 -msgid "As in some other engines, angles in Godot work in radians by default, but you have built-in functions and properties available if you prefer to calculate angles in degrees instead." +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:202 +msgid "Angles in Godot work in radians by default, but you have built-in functions and properties available if you prefer to calculate angles in degrees instead." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:171 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:206 msgid "To move our icon, we need to update its position and rotation every frame in the game loop. We can use the ``_process()`` virtual function of the ``Node`` class. If you define it in any class that extends the Node class, like Sprite, Godot will call the function every frame and pass it an argument named ``delta``, the time elapsed since the last frame." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:179 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:214 msgid "Games work by rendering many images per second, each called a frame, and they do so in a loop. We measure the rate at which a game produces images in Frames Per Second (FPS). Most games aim for 60 FPS, although you might find figures like 30 FPS on slower mobile devices or 90 to 240 for virtual reality games." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:185 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:220 msgid "The engine and game developers do their best to update the game world and render images at a constant time interval, but there are always small variations in frame render times. That's why the engine provides us with this delta time value, making our motion independent of our framerate." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:190 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:225 msgid "At the bottom of the script, define the function:" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:198 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:240 msgid "The ``func`` keyword defines a new function. After it, we have to write the function's name and arguments it takes in parentheses. A colon ends the definition, and the indented blocks that follow are the function's content or instructions." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:203 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:245 msgid "Notice how ``_process()``, like ``_init()``, starts with a leading underscore. By convention, Godot's virtual functions, that is to say, built-in functions you can override to communicate with the engine, start with an underscore." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:208 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:250 msgid "The line inside the function, ``rotation += angular_speed * delta``, increments our sprite's rotation every frame. Here, ``rotation`` is a property inherited from the class ``Node2D``, which ``Sprite`` extends. It controls the rotation of our node and works with radians." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:213 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:255 msgid "In the code editor, you can ctrl-click on any built-in property or function like ``position``, ``rotation``, or ``_process`` to open the corresponding documentation in a new tab." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:217 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:259 msgid "Run the scene to see the Godot icon turn in-place." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:222 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:264 msgid "Moving forward" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:224 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:266 msgid "Let's now make the node move. Add the following two lines to the ``_process()`` function, ensuring the new lines are indented the same way as the one before them." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:235 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:283 msgid "As we already saw, the ``var`` keyword defines a new variable. If you put it at the top of the script, it defines a property of the class. Inside a function, it defines a local variable: it only exists within the function's scope." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:239 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:287 msgid "We define a local variable named ``velocity``, a 2D vector representing both a direction and a speed. To make the node move forward, we start from the Vector2 class's constant Vector2.UP, a vector pointing up, and rotate it by calling the ``Vector2.rotated()`` method. This expression, ``Vector2.UP.rotated(rotation)``, is a vector pointing forward relative to our icon. Multiplied by our ``speed`` property, it gives us a velocity we can use to move the node forward." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:246 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:294 msgid "We add ``velocity * delta`` to the node's ``position`` to move it. The position itself is of type :ref:`Vector2 `, a built-in type in Godot representing a 2D vector." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:250 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:298 msgid "Run the scene to see the Godot head run in circles." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:254 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:302 msgid "Moving a node like that does not take into account colliding with walls or the floor. In :ref:`doc_your_first_2d_game`, you will learn another approach to moving objects while detecting collisions." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:258 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:306 msgid "Our node currently moves by itself. In the next part :ref:`doc_scripting_player_input`, we'll use player input to control it." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:262 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:310 msgid "Complete script" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:264 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:312 msgid "Here is the complete ``Sprite.gd`` file for reference." msgstr "" diff --git a/sphinx/templates/getting_started/step_by_step/scripting_languages.pot b/sphinx/templates/getting_started/step_by_step/scripting_languages.pot index b680be10bb..f8aca6c3ec 100644 --- a/sphinx/templates/getting_started/step_by_step/scripting_languages.pot +++ b/sphinx/templates/getting_started/step_by_step/scripting_languages.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -29,7 +29,7 @@ msgid "**Scripts attach to a node and extend its behavior**. This means that scr msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:16 -msgid "For example, take a game where a Camera2D node follows a ship. The Camera2D node follows its parent by default. Imagine you want it to shake when the player takes damage. As this feature is not built-into Godot, you would attach a script to it and code the camera shake." +msgid "For example, take a game where a Camera2D node follows a ship. The Camera2D node follows its parent by default. Imagine you want the camera to shake when the player takes damage. As this feature is not built into Godot, you would attach a script to the Camera2D node and code the shake." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:24 @@ -37,7 +37,7 @@ msgid "Available scripting languages" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:26 -msgid "Godot offers **five gameplay programming languages**: GDScript, C#, VisualScript, and C++ and C via its GDNative technology. There are more :ref:`community-supported languages `, but these are the official ones." +msgid "Godot offers **five gameplay programming languages**: GDScript, C#, VisualScript, and, via its GDNative technology, C and C++. There are more :ref:`community-supported languages `, but these are the official ones." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:31 @@ -48,151 +48,161 @@ msgstr "" msgid "We provide this flexibility to answer the needs of different game projects and developers." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:41 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:42 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:144 +msgid "`Godot 4.0 will remove VisualScript from core entirely. `__ As a result, creating new projects using visual scripting in Godot is not recommended. Future Godot 4.x releases may have VisualScript reimplemented as an extension." +msgstr "" + +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:46 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:148 +msgid "While Godot 3.x will keep VisualScript supported, we recommend :ref:`trying out GDScript ` instead, especially if you intend to migrate your project to Godot 4." +msgstr "" + +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:51 msgid "Which language should I use?" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:43 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:53 msgid "If you're a beginner, we recommend to **start with GDScript**. We made this language specifically for Godot and the needs of game developers. It has a lightweight and straightforward syntax and provides the tightest integration with Godot." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:50 -msgid "For C#, you will need an external code editor like `VSCode `_ or Visual Studio. While C# support is now mature, you will also find fewer learning resources for it compared to GDScript. That's why we recommend C# mainly to users who already have experience with the language." +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:60 +msgid "For C#, you will need an external code editor like `VSCode `_ or Visual Studio. While C# support is now mature, you will find fewer learning resources for it compared to GDScript. That's why we recommend C# mainly to users who already have experience with the language." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:56 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:66 msgid "Let's look at each language's features, as well as its pros and cons." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:59 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:69 msgid "GDScript" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:61 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:71 msgid ":ref:`GDScript` is an `object-oriented `_ and `imperative `_ programming language built for Godot. It's made by and for game developers to save you time coding games. Its features include:" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:67 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:77 msgid "A simple syntax that leads to short files." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:68 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:78 msgid "Blazing fast compilation and loading times." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:69 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:79 msgid "Tight editor integration, with code completion for nodes, signals, and more information from the scene it's attached to." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:71 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:81 msgid "Built-in vector and transform types, making it efficient for heavy use of linear algebra, a must for games." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:73 -msgid "Supports multiple threads as efficiently as statically typed languages. This is one of the features we couldn't provide easily with a third-party language like Lua or Python." +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:83 +msgid "Supports multiple threads as efficiently as statically typed languages." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:76 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:84 msgid "No `garbage collection `_, as this feature eventually gets in the way when creating games. The engine counts references and manages the memory for you in most cases by default, but you can also control memory if you need to." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:81 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:89 msgid "`Gradual typing `_. Variables have dynamic types by default, but you also can use type hints for strong type checks." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:85 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:93 msgid "GDScript looks like Python as you structure your code blocks using indentations, but it doesn't work the same way in practice. It's inspired by multiple languages, including Squirrel, Lua, and Python." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:91 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:99 msgid "Why don't we use Python or Lua directly?" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:93 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:101 msgid "Years ago, Godot used Python, then Lua. Both languages' integration took a lot of work and had severe limitations. For example, threading support was a big challenge with Python." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:97 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:105 msgid "Developing a dedicated language doesn't take us more work and we can tailor it to game developers' needs. We're now working on performance optimizations and features that would've been difficult to offer with third-party languages." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:103 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:111 msgid ".NET / C#" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:105 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:113 msgid "As Microsoft's `C# `_ is a favorite amongst game developers, we officially support it. C# is a mature and flexible language with tons of libraries written for it. We could add support for it thanks to a generous donation from Microsoft." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:113 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:121 msgid "C# offers a good tradeoff between performance and ease of use, although you should be aware of its garbage collector." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:116 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:124 msgid "You must use the Mono edition of the Godot editor to script in C#. You can download it on the Godot website's `download `_ page." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:120 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:128 msgid "Since Godot uses the `Mono `_ .NET runtime, in theory, you can use any third-party .NET library or framework in Godot, as well as any Common Language Infrastructure-compliant programming language, such as F#, Boo, or ClojureCLR. However, C# is the only officially supported .NET option." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:125 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:133 msgid "GDScript code itself doesn't execute as fast as compiled C# or C++. However, most script code calls functions written with fast algorithms in C++ code inside the engine. In many cases, writing gameplay logic in GDScript, C#, or C++ won't have a significant impact on performance." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:132 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:140 msgid "VisualScript" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:134 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:152 msgid ":ref:`Visual Scripting` is a graph-based visual programming language where you connect blocks. It can be a great tool for non-programmers like game designers and artists." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:140 -msgid "You can use other languages to create custom blocks that are specific to your game. For example, to script AIs, quests, or dialogues. That's where the strength of VisualScript lies." +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:158 +msgid "You can use other languages to create custom blocks that are specific to your game, for example, to script AIs, quests, or dialogues. That's where the strength of VisualScript lies." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:144 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:162 msgid "While it provides all the basic building blocks you need to code complete games, we do not recommend to use VisualScript this way. Programming everything with it is slow compared to using other programming languages." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:150 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:168 msgid "For more information, see :ref:`Getting started with VisualScript `." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:154 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:172 msgid "C and C++ via GDNative" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:156 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:174 msgid "GDNative allows you to write game code in C or C++ without needing to recompile or even restart Godot." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:161 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:179 msgid "You can use any version of the language or mix compiler brands and versions for the generated shared libraries, thanks to our use of an internal C API Bridge." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:164 -msgid "This language is the best choice for performance. You don't need to use it throughout an entire game, as you can write other parts in GDScript, C#, or VisualScript." +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:182 +msgid "GDNative is the best choice for performance. You don't need to use it throughout an entire game, as you can write other parts in GDScript, C#, or VisualScript." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:168 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:186 msgid "When working with GDNative, the available types, functions, and properties closely resemble Godot's actual C++ API." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:172 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:190 msgid "Summary" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:174 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:192 msgid "Scripts are files containing code that you attach to a node to extend its functionality." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:177 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:195 msgid "Godot supports five official scripting languages, offering you flexibility between performance and ease of use." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:180 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:198 msgid "You can mix languages, for instance, to implement demanding algorithms with C or C++ and write most of the game logic with GDScript or C#." msgstr "" diff --git a/sphinx/templates/getting_started/step_by_step/scripting_player_input.pot b/sphinx/templates/getting_started/step_by_step/scripting_player_input.pot index 08476f6783..3905cf2d45 100644 --- a/sphinx/templates/getting_started/step_by_step/scripting_player_input.pot +++ b/sphinx/templates/getting_started/step_by_step/scripting_player_input.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -44,83 +44,83 @@ msgstr "" msgid "For turning, we should use a new variable: ``direction``. In our ``_process()`` function, replace the ``rotation += angular_speed * delta`` line with the code below." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:45 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:59 msgid "Our ``direction`` local variable is a multiplier representing the direction in which the player wants to turn. A value of ``0`` means the player isn't pressing the left or the right arrow key. A value of ``1`` means the player wants to turn right, and ``-1`` means they want to turn left." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:50 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:64 msgid "To produce these values, we introduce conditions and the use of ``Input``. A condition starts with the ``if`` keyword in GDScript and ends with a colon. The condition is the expression between the keyword and the end of the line." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:54 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:68 msgid "To check if a key was pressed this frame, we call ``Input.is_action_pressed()``. The method takes a text string representing an input action and returns ``true`` if the action is pressed, ``false`` otherwise." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:58 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:72 msgid "The two actions we use above, \"ui_left\" and \"ui_right\", are predefined in every Godot project. They respectively trigger when the player presses the left and right arrows on the keyboard or left and right on a gamepad's D-pad." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:62 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:76 msgid "You can see and edit input actions in your project by going to Project -> Project Settings and clicking on the Input Map tab." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:65 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:79 msgid "Finally, we use the ``direction`` as a multiplier when we update the node's ``rotation``: ``rotation += angular_speed * direction * delta``." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:68 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:82 msgid "If you run the scene with this code, the icon should rotate when you press :kbd:`Left` and :kbd:`Right`." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:72 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:86 msgid "Moving when pressing \"up\"" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:74 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:88 msgid "To only move when pressing a key, we need to modify the code that calculates the velocity. Replace the line starting with ``var velocity`` with the code below." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:84 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:106 msgid "We initialize the ``velocity`` with a value of ``Vector2.ZERO``, another constant of the built-in ``Vector`` type representing a 2D vector of length 0." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:87 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:109 msgid "If the player presses the \"ui_up\" action, we then update the velocity's value, causing the sprite to move forward." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:91 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:113 msgid "Complete script" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:93 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:115 msgid "Here is the complete ``Sprite.gd`` file for reference." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:119 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:174 msgid "If you run the scene, you should now be able to rotate with the left and right arrow keys and move forward by pressing :kbd:`Up`." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:125 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:180 msgid "Summary" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:127 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:182 msgid "In summary, every script in Godot represents a class and extends one of the engine's built-in classes. The node types your classes inherit from give you access to properties like ``rotation`` and ``position`` in our sprite's case. You also inherit many functions, which we didn't get to use in this example." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:132 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:187 msgid "In GDScript, the variables you put at the top of the file are your class's properties, also called member variables. Besides variables, you can define functions, which, for the most part, will be your classes' methods." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:136 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:191 msgid "Godot provides several virtual functions you can define to connect your class with the engine. These include ``_process()``, to apply changes to the node every frame, and ``_unhandled_input()``, to receive input events like key and button presses from the users. There are quite a few more." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:141 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:196 msgid "The ``Input`` singleton allows you to react to the players' input anywhere in your code. In particular, you'll get to use it in the ``_process()`` loop." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:144 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:199 msgid "In the next lesson :ref:`doc_signals`, we'll build upon the relationship between scripts and nodes by having our nodes trigger code in scripts." msgstr "" diff --git a/sphinx/templates/getting_started/step_by_step/signals.pot b/sphinx/templates/getting_started/step_by_step/signals.pot index b82c267e1e..3817d3d123 100644 --- a/sphinx/templates/getting_started/step_by_step/signals.pot +++ b/sphinx/templates/getting_started/step_by_step/signals.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -29,7 +29,7 @@ msgid "In this lesson, we will look at signals. They are messages that nodes emi msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:18 -msgid "It is a delegation mechanism built into Godot that allows one game object to react to a change in another without them referencing one another. Using signals limits `coupling `_ and keeps your code flexible." +msgid "Signals are a delegation mechanism built into Godot that allows one game object to react to a change in another without them referencing one another. Using signals limits `coupling `_ and keeps your code flexible." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:24 @@ -85,7 +85,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:78 -msgid "You can also write a label on the Button by editing its Text property in the Inspector." +msgid "You can also write a label on the Button by editing its Text property in the Inspector. Enter \"Toggle motion\"." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:83 @@ -93,202 +93,206 @@ msgid "Your scene tree and viewport should look like this." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:87 -msgid "Save your newly created scene. You can then run it with :kbd:`F6`." -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:90 -msgid "Connecting a signal in the editor" +msgid "Save your newly created scene. You can then run it with :kbd:`F6`. At the moment, the button will be visible, but nothing will happen if you press it." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:92 +msgid "Connecting a signal in the editor" +msgstr "" + +#: ../../docs/getting_started/step_by_step/signals.rst:94 msgid "Here, we want to connect the Button's \"pressed\" signal to our Sprite, and we want to call a new function that will toggle its motion on and off. We need to have a script attached to the Sprite node, which we do from the previous lesson." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:96 +#: ../../docs/getting_started/step_by_step/signals.rst:98 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." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:101 +#: ../../docs/getting_started/step_by_step/signals.rst:103 msgid "The dock displays a list of signals available on the selected node." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:105 +#: ../../docs/getting_started/step_by_step/signals.rst:107 msgid "Double-click the \"pressed\" signal to open the node connection window." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:109 +#: ../../docs/getting_started/step_by_step/signals.rst:111 msgid "There, you can connect the signal to the Sprite 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_NodeName_signal_name\". Here, it'll be \"_on_Button_pressed\"." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:116 +#: ../../docs/getting_started/step_by_step/signals.rst:118 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:122 -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 radio button." +#: ../../docs/getting_started/step_by_step/signals.rst:124 +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." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:127 -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:129 +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." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:133 +#: ../../docs/getting_started/step_by_step/signals.rst:135 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:138 +#: ../../docs/getting_started/step_by_step/signals.rst:140 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:141 +#: ../../docs/getting_started/step_by_step/signals.rst:143 msgid "Our Sprite moves thanks to code in the ``_process()`` function. Godot provides a method to toggle processing on and off: :ref:`Node.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:153 +#: ../../docs/getting_started/step_by_step/signals.rst:155 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:156 +#: ../../docs/getting_started/step_by_step/signals.rst:158 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:168 +#: ../../docs/getting_started/step_by_step/signals.rst:170 msgid "Your complete ``Sprite.gd`` code should look like the following." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:188 +#: ../../docs/getting_started/step_by_step/signals.rst:190 msgid "Run the scene now and click the button to see the sprite start and stop." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:191 +#: ../../docs/getting_started/step_by_step/signals.rst:193 msgid "Connecting a signal via code" msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:193 +#: ../../docs/getting_started/step_by_step/signals.rst:195 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:196 +#: ../../docs/getting_started/step_by_step/signals.rst:198 msgid "Let's use a different node here. Godot has a :ref:`Timer ` node that's useful to implement skill cooldown times, weapon reloading, and more." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:199 +#: ../../docs/getting_started/step_by_step/signals.rst:201 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:`Alt + 1` on macOS)." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:202 +#: ../../docs/getting_started/step_by_step/signals.rst:204 msgid "In the Scene dock, right-click on the Sprite 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:208 +#: ../../docs/getting_started/step_by_step/signals.rst:210 msgid "With the Timer node selected, go to the Inspector and check the **Autostart** property." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:213 +#: ../../docs/getting_started/step_by_step/signals.rst:215 msgid "Click the script icon next to Sprite to jump back to the scripting workspace." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:217 +#: ../../docs/getting_started/step_by_step/signals.rst:219 msgid "We need to do two operations to connect the nodes via code:" msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:219 +#: ../../docs/getting_started/step_by_step/signals.rst:221 msgid "Get a reference to the Timer from the Sprite." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:220 +#: ../../docs/getting_started/step_by_step/signals.rst:222 msgid "Call the Timer's ``connect()`` method." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:222 +#: ../../docs/getting_started/step_by_step/signals.rst:224 msgid "To connect to a signal via code, you need to call the ``connect()`` method of the node 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:226 +#: ../../docs/getting_started/step_by_step/signals.rst:228 msgid "We want to connect the signal when the scene is instantiated, and we can do that using the :ref:`Node._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:230 +#: ../../docs/getting_started/step_by_step/signals.rst:232 msgid "To get a reference to a node relative to the current one, we use the method :ref:`Node.get_node() `. We can store the reference in a variable." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:240 +#: ../../docs/getting_started/step_by_step/signals.rst:242 msgid "The function ``get_node()`` looks at the Sprite'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:246 +#: ../../docs/getting_started/step_by_step/signals.rst:248 msgid "We can now connect the Timer to the Sprite in the ``_ready()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:255 +#: ../../docs/getting_started/step_by_step/signals.rst:257 msgid "The line reads like so: we connect the Timer's \"timeout\" signal to the node to which the script is attached (``self``). 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:266 +#: ../../docs/getting_started/step_by_step/signals.rst:268 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:271 +#: ../../docs/getting_started/step_by_step/signals.rst:272 +msgid "If you run the 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:276 msgid "Complete script" msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:273 +#: ../../docs/getting_started/step_by_step/signals.rst:278 msgid "That's it for our little moving and blinking Godot icon demo! Here is the complete ``Sprite.gd`` file for reference." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:304 +#: ../../docs/getting_started/step_by_step/signals.rst:309 msgid "Custom signals" msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:306 +#: ../../docs/getting_started/step_by_step/signals.rst:311 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:309 +#: ../../docs/getting_started/step_by_step/signals.rst:314 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:323 +#: ../../docs/getting_started/step_by_step/signals.rst:328 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:326 +#: ../../docs/getting_started/step_by_step/signals.rst:331 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." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:331 +#: ../../docs/getting_started/step_by_step/signals.rst:336 msgid "To emit a signal in your scripts, call ``emit_signal()``." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:341 +#: ../../docs/getting_started/step_by_step/signals.rst:346 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:353 +#: ../../docs/getting_started/step_by_step/signals.rst:358 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:358 +#: ../../docs/getting_started/step_by_step/signals.rst:363 msgid "To emit values along with the signal, add them as extra arguments to the ``emit_signal()`` function:" msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:370 +#: ../../docs/getting_started/step_by_step/signals.rst:375 msgid "Summary" msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:372 +#: ../../docs/getting_started/step_by_step/signals.rst:377 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:376 +#: ../../docs/getting_started/step_by_step/signals.rst:381 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:380 +#: ../../docs/getting_started/step_by_step/signals.rst:385 msgid "For example, an :ref:`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:384 +#: ../../docs/getting_started/step_by_step/signals.rst:389 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 "" diff --git a/sphinx/templates/index.pot b/sphinx/templates/index.pot index 50a7724be5..6d31457401 100644 --- a/sphinx/templates/index.pot +++ b/sphinx/templates/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -47,7 +47,7 @@ msgid "Class reference" msgstr "" #: ../../docs/index.rst:2 -msgid "Godot Docs – *3.4* branch" +msgid "Godot Docs – *3.5* branch" msgstr "" #: ../../docs/index.rst:6 @@ -55,7 +55,7 @@ msgid "Godot's documentation is available in various languages and versions. Exp msgstr "" #: ../../docs/index.rst:10 -msgid "This is the documentation for the stable 3.4 branch. Looking for the documentation of the current **development** branch? `Have a look here `_. You can also browse the documentation for the current stable `3.3 `_ branch." +msgid "This is the documentation for the 3.5 branch. Looking for the documentation of the current **development** branch? `Have a look here `_. You can also browse the documentation for the current stable `3.4 `_ branch." msgstr "" #: ../../docs/index.rst:18 diff --git a/sphinx/templates/tutorials/2d/2d_lights_and_shadows.pot b/sphinx/templates/tutorials/2d/2d_lights_and_shadows.pot index 3d8477ccc3..cfd4155acc 100644 --- a/sphinx/templates/tutorials/2d/2d_lights_and_shadows.pot +++ b/sphinx/templates/tutorials/2d/2d_lights_and_shadows.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/2d/2d_meshes.pot b/sphinx/templates/tutorials/2d/2d_meshes.pot index ece3af3a73..64d62ddc88 100644 --- a/sphinx/templates/tutorials/2d/2d_meshes.pot +++ b/sphinx/templates/tutorials/2d/2d_meshes.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/2d/2d_movement.pot b/sphinx/templates/tutorials/2d/2d_movement.pot index b889276908..1eecd200f0 100644 --- a/sphinx/templates/tutorials/2d/2d_movement.pot +++ b/sphinx/templates/tutorials/2d/2d_movement.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -108,27 +108,27 @@ msgstr "" msgid "This last example uses only the mouse to control the character. Clicking on the screen will cause the player to move to the target location." msgstr "" -#: ../../docs/tutorials/2d/2d_movement.rst:343 +#: ../../docs/tutorials/2d/2d_movement.rst:348 msgid "Note the ``distance_to()`` check we make prior to movement. Without this test, the body would \"jitter\" upon reaching the target position, as it moves slightly past the position and tries to move back, only to move too far and repeat." msgstr "" -#: ../../docs/tutorials/2d/2d_movement.rst:348 +#: ../../docs/tutorials/2d/2d_movement.rst:353 msgid "Uncommenting the ``look_at()`` line will also turn the body to point in its direction of motion if you prefer." msgstr "" -#: ../../docs/tutorials/2d/2d_movement.rst:351 +#: ../../docs/tutorials/2d/2d_movement.rst:356 msgid "This technique can also be used as the basis of a \"following\" character. The ``target`` position can be that of any object you want to move to." msgstr "" -#: ../../docs/tutorials/2d/2d_movement.rst:355 +#: ../../docs/tutorials/2d/2d_movement.rst:360 msgid "Summary" msgstr "" -#: ../../docs/tutorials/2d/2d_movement.rst:357 +#: ../../docs/tutorials/2d/2d_movement.rst:362 msgid "You may find these code samples useful as starting points for your own projects. Feel free to use them and experiment with them to see what you can make." msgstr "" -#: ../../docs/tutorials/2d/2d_movement.rst:360 +#: ../../docs/tutorials/2d/2d_movement.rst:365 msgid "You can download this sample project here: :download:`2D_movement_demo.zip `" msgstr "" diff --git a/sphinx/templates/tutorials/2d/2d_sprite_animation.pot b/sphinx/templates/tutorials/2d/2d_sprite_animation.pot index 0c8c5ed1d4..a197edece9 100644 --- a/sphinx/templates/tutorials/2d/2d_sprite_animation.pot +++ b/sphinx/templates/tutorials/2d/2d_sprite_animation.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/2d/2d_transforms.pot b/sphinx/templates/tutorials/2d/2d_transforms.pot index 847d30e883..8d5983a6d1 100644 --- a/sphinx/templates/tutorials/2d/2d_transforms.pot +++ b/sphinx/templates/tutorials/2d/2d_transforms.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/2d/canvas_layers.pot b/sphinx/templates/tutorials/2d/canvas_layers.pot index 195c7f0176..c587e239ab 100644 --- a/sphinx/templates/tutorials/2d/canvas_layers.pot +++ b/sphinx/templates/tutorials/2d/canvas_layers.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/2d/custom_drawing_in_2d.pot b/sphinx/templates/tutorials/2d/custom_drawing_in_2d.pot index 584ba60826..265e92fa85 100644 --- a/sphinx/templates/tutorials/2d/custom_drawing_in_2d.pot +++ b/sphinx/templates/tutorials/2d/custom_drawing_in_2d.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/2d/index.pot b/sphinx/templates/tutorials/2d/index.pot index 7790e40a57..cdb0907ddc 100644 --- a/sphinx/templates/tutorials/2d/index.pot +++ b/sphinx/templates/tutorials/2d/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/2d/particle_systems_2d.pot b/sphinx/templates/tutorials/2d/particle_systems_2d.pot index a678b41cd7..c75fe7e895 100644 --- a/sphinx/templates/tutorials/2d/particle_systems_2d.pot +++ b/sphinx/templates/tutorials/2d/particle_systems_2d.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/2d/using_tilemaps.pot b/sphinx/templates/tutorials/2d/using_tilemaps.pot index 31135276a6..d710bb4382 100644 --- a/sphinx/templates/tutorials/2d/using_tilemaps.pot +++ b/sphinx/templates/tutorials/2d/using_tilemaps.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/3d_rendering_limitations.pot b/sphinx/templates/tutorials/3d/3d_rendering_limitations.pot index 71a8677083..d3f7d664c9 100644 --- a/sphinx/templates/tutorials/3d/3d_rendering_limitations.pot +++ b/sphinx/templates/tutorials/3d/3d_rendering_limitations.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/3d_text.pot b/sphinx/templates/tutorials/3d/3d_text.pot new file mode 100644 index 0000000000..1a11c7a690 --- /dev/null +++ b/sphinx/templates/tutorials/3d/3d_text.pot @@ -0,0 +1,61 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2022, 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 , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine 3.5\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/tutorials/3d/3d_text.rst:4 +msgid "3D text" +msgstr "" + +#: ../../docs/tutorials/3d/3d_text.rst:7 +msgid "Introduction" +msgstr "" + +#: ../../docs/tutorials/3d/3d_text.rst:9 +msgid "In a project, there may be times when text needs to be created as part of a 3D scene and not just in the HUD. Godot provides two methods to do this. The Label3D node and the text mesh for a MeshInstance node." +msgstr "" + +#: ../../docs/tutorials/3d/3d_text.rst:14 +msgid "This page does **not** cover how to display a GUI scene in a 3D environment. For information on how to do that see `this `__ demo project." +msgstr "" + +#: ../../docs/tutorials/3d/3d_text.rst:19 +msgid "Label3D" +msgstr "" + +#: ../../docs/tutorials/3d/3d_text.rst:23 +msgid "Label3D behaves like a label node but in a 3D space. Unlike label node this can not inherit properties of a GUI theme. However its look remains customizable and uses the same DynamicFont and BitmapFont subresources control nodes use." +msgstr "" + +#: ../../docs/tutorials/3d/3d_text.rst:28 +msgid "Label3D has minimal interaction with a 3D environment, it can be lit up and shaded by light sources if the shaded flag is enabled, but it will not cast a shadow, even with cast shadow turned on under the nodes GeometryInstance3D settings. This is because the node is a quad mesh (one glyph per quad) with transparent textures and has the same limitations as Sprite3D. See :ref:`this page ` for more information." +msgstr "" + +#: ../../docs/tutorials/3d/3d_text.rst:37 +msgid "Text mesh" +msgstr "" + +#: ../../docs/tutorials/3d/3d_text.rst:41 +msgid "Text meshes have similarities to Label3D. They display text in a 3D scene, and will use the same DynamicFont subresource. However text is 3D and has the properties of a mesh. A text mesh cast shadows onto the environment and can have a material applied to it. Here is an example of a texture and how it's applied to the mesh." +msgstr "" + +#: ../../docs/tutorials/3d/3d_text.rst:51 +msgid "There are two limitations to text mesh. It can't use bitmap fonts, or fonts with self intersection." +msgstr "" + +#: ../../docs/:0 +msgid "Translation status" +msgstr "" diff --git a/sphinx/templates/tutorials/3d/baked_lightmaps.pot b/sphinx/templates/tutorials/3d/baked_lightmaps.pot index f3469ff5bc..a9f8be5bca 100644 --- a/sphinx/templates/tutorials/3d/baked_lightmaps.pot +++ b/sphinx/templates/tutorials/3d/baked_lightmaps.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/csg_tools.pot b/sphinx/templates/tutorials/3d/csg_tools.pot index 8f7a63f859..168735e4e4 100644 --- a/sphinx/templates/tutorials/3d/csg_tools.pot +++ b/sphinx/templates/tutorials/3d/csg_tools.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/environment_and_post_processing.pot b/sphinx/templates/tutorials/3d/environment_and_post_processing.pot index 7a91fb8f7e..2190f93129 100644 --- a/sphinx/templates/tutorials/3d/environment_and_post_processing.pot +++ b/sphinx/templates/tutorials/3d/environment_and_post_processing.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/gi_probes.pot b/sphinx/templates/tutorials/3d/gi_probes.pot index 5bd6366666..81f1e70750 100644 --- a/sphinx/templates/tutorials/3d/gi_probes.pot +++ b/sphinx/templates/tutorials/3d/gi_probes.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/high_dynamic_range.pot b/sphinx/templates/tutorials/3d/high_dynamic_range.pot index b40ae3eece..3d721d508e 100644 --- a/sphinx/templates/tutorials/3d/high_dynamic_range.pot +++ b/sphinx/templates/tutorials/3d/high_dynamic_range.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/index.pot b/sphinx/templates/tutorials/3d/index.pot index 2573e34f60..099aef4369 100644 --- a/sphinx/templates/tutorials/3d/index.pot +++ b/sphinx/templates/tutorials/3d/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/introduction_to_3d.pot b/sphinx/templates/tutorials/3d/introduction_to_3d.pot index 9e13133d09..61eb7562cd 100644 --- a/sphinx/templates/tutorials/3d/introduction_to_3d.pot +++ b/sphinx/templates/tutorials/3d/introduction_to_3d.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/lights_and_shadows.pot b/sphinx/templates/tutorials/3d/lights_and_shadows.pot index 02cb6963ed..91a4503bb4 100644 --- a/sphinx/templates/tutorials/3d/lights_and_shadows.pot +++ b/sphinx/templates/tutorials/3d/lights_and_shadows.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/occluders.pot b/sphinx/templates/tutorials/3d/occluders.pot index c904ea4510..2dffa048ae 100644 --- a/sphinx/templates/tutorials/3d/occluders.pot +++ b/sphinx/templates/tutorials/3d/occluders.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -29,7 +29,7 @@ msgid "Any object that is fully occluded by the shape (behind or in some cases i msgstr "" #: ../../docs/tutorials/3d/occluders.rst:10 -msgid "It is important to understand that geometric occluders work by testing the axis aligned bounding box (``AABB``) of the occludee against the occluder. The AABB must be *fully occluded* to be culled. The consequence of this is that smaller objects are more likely to be effectively culled than larger objects." +msgid "It is important to understand that geometric occluders work by testing the axis aligned bounding box (``AABB``) of the occludee against the occluder. The AABB must be *fully occluded* to be culled. The consequence of this is that smaller objects are more likely to be effectively culled than larger objects, and larger occluders tend to be much more effective than smaller ones." msgstr "" #: ../../docs/tutorials/3d/occluders.rst:12 @@ -88,6 +88,142 @@ msgstr "" msgid "A common use case for occluder spheres is providing occlusion on mountainous / hilly terrain. By placing spheres inside mountains you can prevent trees, plants, building and objects rendering behind mountains. With some creativity they can also be used for moving objects such as large spacecraft, planets etc." msgstr "" +#: ../../docs/tutorials/3d/occluders.rst:46 +msgid "OccluderShapePolygon" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:48 +msgid "The polygon is a generalist occluder. It can be made to work well in almost all situations, and can quickly provide a degree of occlusion culling to most scenes." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:50 +msgid "As with all geometric occluders, the key to success is to make them large. They do not have to match rendered geometry, and in many cases they will work better if you extend them past rendered geometry to make them as big as possible (without blocking legitimate lines of sight). The reason why they need to be large is that in general, they will only cull objects whose ``AABB`` is completely hidden by the polygon. For large objects to be culled, you will need large occluders." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:52 +msgid "Like all occluders, polygons **can** overlap, and in many cases they will work better if you overlap them (they are more likely to cull objects on boundaries)." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:55 +msgid "Editing and details" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:57 +msgid "Occluder polygons are edited as a list of points which define a *convex* polygon, on a single plane. In order to confine the polygon to a single plane, the points are defined in 2D space rather than 3D. The orientation, position and scale of the polygon is taken instead from the transform of the ``Occluder`` Node." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:61 +msgid "If you create an Occluder and add to it a ``OccluderShapePolygon`` resource, by default it will create 4 starting points forming a rectangle. If you move the position and rotation of the Occluder Node you will see how the rectangle follows the node. When the Occluder is selected in the editor, handles will appear for each of the points. You can actually click and drag these handles, to match your polygon to the environment of your scene." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:65 +msgid "You are not restricted to 4 points, you can add and remove points in the Inspector, but note that:" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:67 +msgid "The editor will automatically sanitize your points to form a convex polygon. If you drag a point into a position that would form a concave polygon, it will be ignored." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:68 +msgid "In general, the less edges (and thus points), the faster the polygon will work at runtime. A polygon with 6 edges will have to make twice the calculations of a polygon with 3 edges. In most cases 4 is a good number." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:73 +msgid "Holes" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:75 +msgid "Real world game levels don't always have large continuous areas that should be occluded. Often walls will have a door or windows, caves will have an entrance, etc. In some cases we have to make do by placing several OccluderShapePolygons around such an opening, but Occluder polygons have one more trick up their sleeve - they can have \"holes\"." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:77 +msgid "In the inspector you will notice that as well as a set of points for the polygon, the polygon has a set of points for a single \"hole\". If you add 3 or 4 to your polygon, you will see they appear in the editor as smaller handles. You can drag these around just like the polygon handles, to form a convex hole." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:81 +msgid "The hole can be totally within the polygon (such as a window), abutting the edge (like a door) or crossing the edge of the polygon completely, to make the occluder concave. The way the hole works is that the culling follows a simple rule:" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:83 +msgid "If the object to be culled is totally hidden by the polygon, it then looks to see whether it can be seen *through* the hole. If the object touches the hole, it is not culled, but if hidden by the polygon and not seen through the hole it is culled." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:85 +msgid "Placing holes is usually far more convenient, and works faster and better at runtime, than creating lots of smaller OccluderShapePolygons." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:88 +msgid "Hole Limits" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:90 +msgid "The main limitation of holes is that there can only be one per polygon. If you have a situation which requires two or more holes, you have a choice:" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:92 +msgid "Combine the area of the two holes into one bigger hole (if they are close together)." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:93 +msgid "Use two or more OccluderPolygons." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:95 +msgid "Remember that if you are using more than one polygon, they can overlap, and you should use this to your advantage." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:98 +msgid "How many Occluder polys are needed?" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:100 +msgid "This very much depends on your scene, but generally you can start getting a good benefit from 3 or 4 well placed polygons. After that it is totally up to you how much time you want to spend. Placing occluders is a bit of an art form, and you will get better at it and learn new tricks the more you work with them." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:104 +msgid "Some ideas:" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:106 +msgid "Build your levels to take advantage of occlusion." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:108 +msgid "This is one of the secrets of the pros. A good level design is not just about what the gameplay demands, it should also be built with occlusion in mind." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:110 +msgid "When in a building with multiple floors, try placing an occluder polygon between each floor, with a hole for where the staircase transitions between them. This can potentially cull out entire floors and greatly improve performance." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:111 +msgid "Don't be afraid to extend your occluder polygons far past the edges of visible geometry to cull more objects - for instance far into the ground or sky." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:114 +msgid "Using polygons dynamically" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:116 +msgid "Like all geometric occluders, polygons are not confined to static (non-moving) geometry. You can place them on moving objects. You can even change the relative position of the points in realtime." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:118 +msgid "Some guidelines:" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:120 +msgid "There is a slight cost to moving polygons, the points of the polygons must be transformed on the CPU each time their transform changes." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:122 +msgid "This is not something to worry excessively about, even CPUs are reasonably fast at transforming points, and generally polygons have very few points compared to rendered geometry. But it is something to consider, if you wanted to create e.g. 10,000 simultaneous spaceships all with occluder polys." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:124 +msgid "Changing the transform of the polygon Node (e.g. by moving the parent object) is cheaper than changing the points themselves. Use the former rather than the latter wherever possible." +msgstr "" + #: ../../docs/:0 msgid "Translation status" msgstr "" diff --git a/sphinx/templates/tutorials/3d/portals/advanced_room_and_portal_usage.pot b/sphinx/templates/tutorials/3d/portals/advanced_room_and_portal_usage.pot index 12578b8e5d..2f782745ed 100644 --- a/sphinx/templates/tutorials/3d/portals/advanced_room_and_portal_usage.pot +++ b/sphinx/templates/tutorials/3d/portals/advanced_room_and_portal_usage.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/portals/editing_rooms_and_portals.pot b/sphinx/templates/tutorials/3d/portals/editing_rooms_and_portals.pot index 58fdb6e984..a1170bc007 100644 --- a/sphinx/templates/tutorials/3d/portals/editing_rooms_and_portals.pot +++ b/sphinx/templates/tutorials/3d/portals/editing_rooms_and_portals.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/portals/first_steps_with_rooms_and_portals.pot b/sphinx/templates/tutorials/3d/portals/first_steps_with_rooms_and_portals.pot index 9bff1ec02e..96359ca7d3 100644 --- a/sphinx/templates/tutorials/3d/portals/first_steps_with_rooms_and_portals.pot +++ b/sphinx/templates/tutorials/3d/portals/first_steps_with_rooms_and_portals.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -33,15 +33,15 @@ msgid "Room Conversion" msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:12 -msgid "This conversion must take place every time you want to activate the system. It does not store the *room graph* in your project (for flexibility and to save memory). You can either trigger it by pressing the **Convert Rooms** button in the editor toolbar (which also has a keyboard shortcut), or you can call the ``rooms_convert()`` method in the RoomManager. This latter method will be what you use in-game. Note that for safety, best practice is to call ``rooms_clear()`` before unloading or changing levels." +msgid "This conversion must take place every time you want to activate the system. It does not store the *room graph* in your project (for flexibility and to save memory). You can either trigger it by pressing the **Convert Rooms** button in the editor toolbar (which also has a keyboard shortcut) or by calling the ``rooms_convert()`` method in the RoomManager. The latter method will be what you use in-game. Note that for safety, best practice is to call ``rooms_clear()`` before unloading or changing levels." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:16 -msgid "If you convert the level while the editor is running, the portal culling system will take over from the normal Godot frustum culling. This may affect some editor features. For this reason, you can turn the portal culling on and off, using either the **View Portal Culling** toggle in the **View** menu on the editor toolbar (which also has a keyboard shortcut), or via the **Active** setting in the RoomManager node." +msgid "If you convert the level while the editor is running, the portal culling system will take over from the normal Godot frustum culling, potentially interfering with editor features. To get around this, you can turn portal culling on and off using either the **View Portal Culling** toggle in the **View** menu on the editor toolbar (which also has a keyboard shortcut) or the **Active** setting in the RoomManager node." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:18 -msgid "To use the RoomManager, you have to tell it where the rooms are in your scene tree, or rather where the RoomList node is. This RoomList is the parent of your rooms - see below. If the RoomList is not set, conversion will fail, and you will see a warning dialog box." +msgid "To use the RoomManager, you have to tell it where the rooms are in your scene tree, or, more specifically, where the RoomList node is. This RoomList is the parent of your rooms - see below. If the RoomList is not set, conversion will fail, and you will see a warning dialog box." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:23 @@ -49,23 +49,23 @@ msgid "The RoomList" msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:25 -msgid "Before we create any rooms, we must first create a node to be the parent of all the static objects, rooms, roomgroups and so on in our level. This node is referred to as the the ``RoomList``." +msgid "Before we create any rooms, we must first create a node to be the parent of all the static objects, rooms, roomgroups, and so on in our level. This node is referred to as the the ``RoomList``." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:29 -msgid "The roomlist is **not** a special node type, it can just be a regular Spatial." +msgid "The roomlist is **not** a special node type – it can just be a regular Spatial." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:31 -msgid "You will need to assign the roomlist node in the RoomManager, so the RoomManager knows where to find the rooms." +msgid "You will need to assign the roomlist node in the RoomManager so that it knows where to find the rooms." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:33 -msgid "Why do we use a specific branch of the scene tree, and not use the scene root? The answer is that there are many internal details of the system which are easier to manage if the rooms are placed on their own branch." +msgid "Why do we use a specific branch of the scene tree and not the scene root? The answer is that there are many internal details of the system which are easier to manage if the rooms are placed on their own branch." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:35 -msgid "Often, you will end up completely replacing the roomlist branch at runtime in your game as you load and unload levels." +msgid "Often you will end up completely replacing the roomlist branch at runtime in your game as you load and unload levels." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:38 @@ -77,11 +77,11 @@ msgid "What is a room?" msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:43 -msgid ":ref:`Room`\\ s are a way of spatially partitioning your level into areas that make sense in terms of the level design. Rooms often quite literally *are* rooms (for instance in a building). Ultimately though, as far as the engine is concerned, a room respresents a **non-overlapping** convex volume, in which you would typically place most of your objects that fall within that area." +msgid ":ref:`Room`\\ s are a way of spatially partitioning your level into areas that make sense in terms of level design. Rooms often quite literally *are* rooms (like in a building). Ultimately though, as far as the engine is concerned, a room represents a **non-overlapping** convex volume in which you typically place most of your objects that fall within that area." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:45 -msgid "A room doesn't need to correspond to a literal room. It could for example also be a canyon in an outdoor area, or a smaller part of a concave room. With a little imagination, you can use the system in almost any scenario." +msgid "A room doesn't need to correspond to a literal room. It could, for example, also be a canyon in an outdoor area or a smaller part of a concave room. With a little imagination, you can use the system in almost any scenario." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:48 @@ -89,7 +89,7 @@ msgid "Why convex?" msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:50 -msgid "The reason why rooms are defined as convex volumes (or *convex hulls* as they are known), is that mathematically, it is very easy to determine whether a point is within a convex hull. A simple plane check will tell you the distance of a point from a plane. If a point is behind all the planes bounding the convex hull, then by definition, it is inside the room. This makes all kinds of things easier in the internals of the system, such as checking which room a camera is within." +msgid "Rooms are defined as convex volumes (or *convex hulls*) because it's trivial to mathematically determine whether a point is within a convex hull. A simple plane check will tell you the distance of a point from a plane. If a point is behind all the planes bounding the convex hull, then by definition it is inside the room. This makes all kinds of things easier in the internals of the system, such as checking which room a camera is within." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:52 @@ -105,15 +105,15 @@ msgid "If two rooms overlap, and a camera or player is in this overlapping zone, msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:61 -msgid "If you accidentally create overlapping rooms, the editor will flag a warning when you convert the rooms, and indicate any overlapping zones in red." +msgid "If you accidentally create overlapping rooms, the editor will warn you when you convert the rooms, indicating any overlapping zones in red." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:65 -msgid "The system does attempt to cope with overlapping rooms as best as possible by making the current room *\"sticky\"*. Each object remembers which room it was in last frame, and stays within it as long as it does not move outside the convex hull room bound. This can result in some hysteresis in these overlapping zones." +msgid "The system does attempt to cope with overlapping rooms as best as possible by making the current room *\"sticky\"*. Each object remembers which room it was in during the previous frame and stays within it as long as it does not move outside the convex hull room bound. This can result in some hysteresis in these overlapping zones." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:67 -msgid "There is one exception however for :ref:`internal rooms`. You do not have to worry about these to start with." +msgid "There is one exception, however, for :ref:`internal rooms`. You do not have to worry about these to start with." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:70 @@ -137,15 +137,15 @@ msgid "Use the geometry of the objects contained within the room to automaticall msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:80 -msgid "By manually editing the points that define the convex hull, in the room inspector, or dragging the points using the editor gizmo (see :ref:`doc_room_point_editing`)." +msgid "Manually edit the points that define the convex hull in the room inspector or drag the points around using the editor gizmo (see :ref:`doc_room_point_editing`)." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:81 -msgid "Provide a manual bound. This is a MeshInstance in the room that has geometry in the shape of the desired bound, with a name with a postfix ``-bound``. This is something you might choose to do if you create your levels in Blender or similar (see :ref:`doc_rooms_and_portals_blender`)." +msgid "Provide a manual bound. This is a MeshInstance in the room that has geometry in the shape of the desired bound, with a name with the postfix ``-bound``. This is something you might choose to do if you create your levels in Blender or similar (see :ref:`doc_rooms_and_portals_blender`)." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:83 -msgid "While the first option can be all that is required, particularly with simple rooms, or for pre-production, the power of the manual bounds gives you ultimate control (at the expense of a small amount of editing). You can also combine the two approaches, perhaps using automatic bounds for most rooms but manually editing problem areas." +msgid "While the first option can be all that is required, particularly with simple rooms or for pre-production, using manual bounds gives you ultimate control at the expense of a small amount of editing. You can also combine the two approaches, perhaps using automatic bounds for most rooms but manually editing problem areas." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:85 @@ -161,15 +161,15 @@ msgid "Portals" msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:94 -msgid "If you create some rooms, place objects within them, then convert the level in the editor, you will see the objects in the rooms appearing and showing as you move between rooms. There is one problem however! Although you can see the objects within the room that the camera is in, you can't see to any neighbouring rooms! For that we need portals." +msgid "If you create some rooms, place objects within them, then convert the level in the editor, you will see the objects in the rooms appearing and showing as you move between rooms. There is one problem, however! Although you can see the objects within the room that the camera is in, you can't see to any neighbouring rooms! For that we need portals." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:96 -msgid ":ref:`Portal`\\ s are special convex polygons. You position over the openings between rooms, in order to allow the system to see between them. You can create a portal node directly in the editor. The default portal has 4 points and behaves much like a ``plane`` :ref:`MeshInstance`. You can add or remove points using the inspector. A portal will require at least 3 points to work - this is because it needs to form a polygon rather than a point or line." +msgid ":ref:`Portal`\\ s are special convex polygons that you position over the openings between rooms in order to allow the system to see between them. You can create a portal node directly in the editor. The default portal has 4 points and behaves much like a ``plane`` :ref:`MeshInstance`. You can add or remove points using the inspector. A portal requires at least 3 points to work - this is because it needs to form a polygon rather than a point or line." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:98 -msgid "To save editing effort, **only one Portal is required between each pair of Rooms**. You *do not need* to (and indeed should not) create two Portals that overlap in opposite directions. Portals default to being two-way (but you can make them one-way in the Portal inspector)." +msgid "To save editing effort, **only one Portal is required between each pair of Rooms**. You *do not need* to (and indeed should not) create two Portals that overlap in opposite directions. Portals default to being two-way, but you can make them one-way in the Portal inspector." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:100 @@ -185,7 +185,7 @@ msgid "Portal linking" msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:109 -msgid "There are two options for dealing with specifying which room the portal should link to." +msgid "There are two ways to specify which room the portal should link to:" msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:111 @@ -193,7 +193,7 @@ msgid "Leave the **Linked Room** in the inspector blank. The system will attempt msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:112 -msgid "You can explicitly specify the room by setting the **Linked Room** in the inspector." +msgid "Explicitly specify the room by setting the **Linked Room** in the inspector." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:114 @@ -205,7 +205,7 @@ msgid "Trying it out" msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:119 -msgid "By now you should be able to create a couple of rooms, add some nodes such as MeshInstances within the rooms, and add a portal between the rooms. Try converting the rooms in the editor, and see if you can now see the objects in neighbouring rooms, through the portal." +msgid "By now you should be able to create a couple of rooms, add some nodes such as MeshInstances within the rooms, and add a portal between the rooms. Try converting the rooms in the editor and see if you can now view the objects in neighbouring rooms through the portal." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:123 diff --git a/sphinx/templates/tutorials/3d/portals/index.pot b/sphinx/templates/tutorials/3d/portals/index.pot index d381360445..8ce457cc27 100644 --- a/sphinx/templates/tutorials/3d/portals/index.pot +++ b/sphinx/templates/tutorials/3d/portals/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/portals/introduction_to_rooms_and_portals.pot b/sphinx/templates/tutorials/3d/portals/introduction_to_rooms_and_portals.pot index 2707ad6853..a18516ec35 100644 --- a/sphinx/templates/tutorials/3d/portals/introduction_to_rooms_and_portals.pot +++ b/sphinx/templates/tutorials/3d/portals/introduction_to_rooms_and_portals.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/portals/rooms_and_portals_example.pot b/sphinx/templates/tutorials/3d/portals/rooms_and_portals_example.pot index ad0483cb0e..bf81f83163 100644 --- a/sphinx/templates/tutorials/3d/portals/rooms_and_portals_example.pot +++ b/sphinx/templates/tutorials/3d/portals/rooms_and_portals_example.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/portals/using_objects_in_rooms_and_portals.pot b/sphinx/templates/tutorials/3d/portals/using_objects_in_rooms_and_portals.pot index 57d56b0060..d9cb845c4c 100644 --- a/sphinx/templates/tutorials/3d/portals/using_objects_in_rooms_and_portals.pot +++ b/sphinx/templates/tutorials/3d/portals/using_objects_in_rooms_and_portals.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/procedural_geometry/arraymesh.pot b/sphinx/templates/tutorials/3d/procedural_geometry/arraymesh.pot index 9f97824d94..a465440d91 100644 --- a/sphinx/templates/tutorials/3d/procedural_geometry/arraymesh.pot +++ b/sphinx/templates/tutorials/3d/procedural_geometry/arraymesh.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,7 +21,7 @@ msgid "Using the ArrayMesh" msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:6 -msgid "This tutorial will present the basics of using an :ref:`ArrayMesh `" +msgid "This tutorial will present the basics of using an :ref:`ArrayMesh `." msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:8 @@ -29,135 +29,200 @@ msgid "To do so, we will use the function :ref:`add_surface_from_arrays() ` class reference page." +msgid "The first parameter is the ``PrimitiveType``, an OpenGL concept that instructs the GPU how to arrange the primitive based on the vertices given, i.e. whether they represent triangles, lines, points, etc. See :ref:`Mesh.PrimitiveType ` for the options available." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:16 -msgid "The second is the actual Array that stores the mesh information. The array is a normal Godot array that is constructed with empty brackets ``[]``. It stores a ``Pool**Array`` (e.g. PoolVector3Array, PoolIntArray, etc.) for each type of information." +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:15 +msgid "The second parameter, ``arrays``, is the actual Array that stores the mesh information. The array is a normal Godot array that is constructed with empty brackets ``[]``. It stores a ``Pool**Array`` (e.g. PoolVector3Array, PoolIntArray, etc.) for each type of information that will be used to build the surface." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:20 -msgid "``ARRAY_VERTEX`` = 0 | PoolVector3Array or PoolVector2Array" -msgstr "" - -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:21 -msgid "``ARRAY_NORMAL`` = 1 | PoolVector3Array" -msgstr "" - -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:22 -msgid "``ARRAY_TANGENT`` = 2 | PoolRealArray of groups of 4 floats. First 3 floats determine the tangent, and the last the binormal direction as -1 or 1." -msgstr "" - -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:24 -msgid "``ARRAY_COLOR`` = 3 | PoolColorArray" -msgstr "" - -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:25 -msgid "``ARRAY_TEX_UV`` = 4 | PoolVector2Array or PoolVector3Array" -msgstr "" - -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:26 -msgid "``ARRAY_TEX_UV2`` = 5 | PoolVector2Array or PoolVector3Array" -msgstr "" - -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:27 -msgid "``ARRAY_BONES`` = 6 | PoolRealArray of groups of 4 floats or PoolIntArray of groups of 4 ints. Each group lists indexes of 4 bones that affects a given vertex." -msgstr "" - -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:28 -msgid "``ARRAY_WEIGHTS`` = 7 | PoolRealArray of groups of 4 floats. Each float lists the amount of weight an determined bone on ``ARRAY_BONES`` has on a given vertex." +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:19 +msgid "The possible elements of ``arrays`` are listed below, together with the position they must have within ``arrays``. See also :ref:`Mesh.ArrayType `." msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:29 -msgid "``ARRAY_INDEX`` = 8 | PoolIntArray" +msgid "Index" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:30 +msgid "Mesh.ArrayType Enum" msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:31 -msgid "The Array of vertices is always required. All the others are optional and will only be used if included." +msgid "Array type" msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:33 -msgid "Each array needs to have the same number of elements as the vertex array except for the index array. For arrays like tangents, an element is a group of 4 floats. So the array size will be four times the size of the vertex array size, but they will have the same number of elements" +msgid "0" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:34 +msgid "``ARRAY_VERTEX``" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:35 +msgid ":ref:`PoolVector3Array ` or :ref:`PoolVector2Array `" msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:37 -msgid "The index array is unique." +msgid "1" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:38 +msgid "``ARRAY_NORMAL``" msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:39 -msgid "The third parameter is an array of blendshapes for the Mesh to use. While this tutorial does not cover using blendshapes, it is possible to specify them when creating a surface from arrays." +msgid ":ref:`PoolVector3Array `" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:41 +msgid "2" msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:42 -msgid "The last parameter is the compress flags which specifies which arrays to store with half as many bits. The values can be found in the classref for :ref:`VisualServer ` under :ref:`ArrayFormat `." +msgid "``ARRAY_TANGENT``" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:45 -msgid "For normal usage you will find it is best to leave the last two parameters empty." +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:43 +msgid ":ref:`PoolRealArray ` of groups of 4 floats. First 3 floats determine the tangent, and the last the binormal direction as -1 or 1." +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:46 +msgid "3" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:47 +msgid "``ARRAY_COLOR``" msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:48 -msgid "ArrayMesh" +msgid ":ref:`PoolColorArray `" msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:50 -msgid "Add an :ref:`ArrayMesh ` to a MeshInstance. Normally, adding an ArrayMesh in the editor is not useful, but in this case it allows as to access the ArrayMesh from code without creating one." +msgid "4" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:51 +msgid "``ARRAY_TEX_UV``" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:52 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:56 +msgid ":ref:`PoolVector2Array ` or :ref:`PoolVector3Array `" msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:54 -msgid "Next, add a script to the MeshInstance." +msgid "5" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:56 -msgid "Under ``_ready()``, create a new Array." +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:55 +msgid "``ARRAY_TEX_UV2``" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:58 +msgid "6" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:59 +msgid "``ARRAY_BONES``" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:60 +msgid ":ref:`PoolRealArray ` of groups of 4 floats or :ref:`PoolIntArray ` of groups of 4 ints. Each group lists indexes of 4 bones that affects a given vertex." +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:62 +msgid "7" msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:63 -msgid "This will be the array that we keep our surface information in, it will hold all the arrays of data that the surface needs. Godot will expect it to be of size ``Mesh.ARRAY_MAX``, so resize it accordingly." +msgid "``ARRAY_WEIGHTS``" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:73 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:64 +msgid ":ref:`PoolRealArray ` of groups of 4 floats. Each float lists the amount of weight an determined bone on ``ARRAY_BONES`` has on a given vertex." +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:66 +msgid "8" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:67 +msgid "``ARRAY_INDEX``" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:68 +msgid ":ref:`PoolIntArray `" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:70 +msgid "The array of vertices (at index 0) is always required. The index array is optional and will only be used if included. We won't use it in this tutorial." +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:72 +msgid "All the other arrays carry information about the vertices. They are also optional and will only be used if included. Some of these arrays (e.g. ``ARRAY_COLOR``) use one entry per vertex to provide extra information about vertices. They must have the same size as the vertex array. Other arrays (e.g. ``ARRAY_TANGENT``) use four entries to describe a single vertex. These must be exactly four times larger than the vertex array." +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:76 +msgid "For normal usage, the last two parameters in :ref:`add_surface_from_arrays() ` are typically left empty." +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:79 +msgid "ArrayMesh" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:81 +msgid "In the editor, create a :ref:`MeshInstance ` and add an :ref:`ArrayMesh ` to it in the Inspector. Normally, adding an ArrayMesh in the editor is not useful, but in this case it allows us to access the ArrayMesh from code without creating one." +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:85 +msgid "Next, add a script to the MeshInstance." +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:87 +msgid "Under ``_ready()``, create a new Array." +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:94 +msgid "This will be the array that we keep our surface information in - it will hold all the arrays of data that the surface needs. Godot will expect it to be of size ``Mesh.ARRAY_MAX``, so resize it accordingly." +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:104 msgid "Next create the arrays for each data type you will use." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:83 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:114 msgid "Once you have filled your data arrays with your geometry you can create a mesh by adding each array to ``surface_array`` and then committing to the mesh." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:96 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:127 msgid "In this example, we used ``Mesh.PRIMITIVE_TRIANGLES``, but you can use any primitive type available from mesh." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:99 -msgid "Put together the full code looks like:" -msgstr "" - #: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:130 -msgid "The code that goes in the middle can be whatever you want. Below we will present some example code that could go in the middle." +msgid "Put together, the full code looks like:" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:134 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:161 +msgid "The code that goes in the middle can be whatever you want. Below we will present some example code for generating a sphere." +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:165 msgid "Generating geometry" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:136 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:167 msgid "Here is sample code for generating a sphere. Although the code is presented in GDScript, there is nothing Godot specific about the approach to generating it. This implementation has nothing in particular to do with ArrayMeshes and is just a generic approach to generating a sphere. If you are having trouble understanding it or want to learn more about procedural geometry in general, you can use any tutorial that you find online." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:203 -msgid "Combined with the code above, this code will generate a sphere." -msgstr "" - -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:205 -msgid "When it comes to generating geometry with the ArrayMesh you need to understand what goes in each array and then you can follow tutorials for any language/engine and convert it into Godot." -msgstr "" - -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:209 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:235 msgid "Saving" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:211 -msgid "Finally, Godot provides a single method to save ArrayMeshes using the :ref:`ResourceSaver ` class. This is useful when you want to generate a mesh and then use it later without having to re-generate." +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:237 +msgid "Finally, we can use the :ref:`ResourceSaver ` class to save the ArrayMesh. This is useful when you want to generate a mesh and then use it later without having to re-generate it." msgstr "" #: ../../docs/:0 diff --git a/sphinx/templates/tutorials/3d/procedural_geometry/immediategeometry.pot b/sphinx/templates/tutorials/3d/procedural_geometry/immediategeometry.pot index 915ed3ea9d..8afbdb6d2c 100644 --- a/sphinx/templates/tutorials/3d/procedural_geometry/immediategeometry.pot +++ b/sphinx/templates/tutorials/3d/procedural_geometry/immediategeometry.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/procedural_geometry/index.pot b/sphinx/templates/tutorials/3d/procedural_geometry/index.pot index 52083de2f9..c85794932f 100644 --- a/sphinx/templates/tutorials/3d/procedural_geometry/index.pot +++ b/sphinx/templates/tutorials/3d/procedural_geometry/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -45,7 +45,7 @@ msgid "Meshes and ArrayMeshes are resources that are drawn using a MeshInstance msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/index.rst:38 -msgid "If you are going to draw the same object many times, it can be helpful to use a MultiMesh with a MultiMeshInstance. The MultiMeshInstance draws meshes thousands of times very cheaply. It takes advantage of hardware instancing in order to do so. The drawback with using a MultiMeshInstance is that you are limited to one material for all instances. It uses an instance array to store different colors and transformations for each instance, but all the instances use the same material." +msgid "If you are going to draw the same object many times, it can be helpful to use a MultiMesh with a MultiMeshInstance. MultiMeshInstances draw meshes thousands of times very cheaply by taking advantage of hardware instancing. The drawback with using a MultiMeshInstance is that each of your mesh's surfaces are limited to one material for all instances. It uses an instance array to store different colors and transformations for each instance, but all the instances of each surface use the same material." msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/index.rst:46 @@ -61,7 +61,7 @@ msgid "Surfaces" msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/index.rst:56 -msgid "Each surface has its own material. Alternatively, you can override the material for all surfaces in the Mesh when you use a MeshInstance using ``MeshInstance.override_material``." +msgid "Each surface has its own material. Alternatively, you can override the material for all surfaces in the Mesh when you use a MeshInstance using the :ref:`material_override ` property." msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/index.rst:60 @@ -69,95 +69,95 @@ msgid "Surface array" msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/index.rst:62 -msgid "The surface array is an array of length ``ArrayMesh.ARRAY_MAX``. Each position in the array is filled with a sub-array containing per-vertex information. For example, the array located at ``ArrayMesh.ARRAY_NORMAL`` is a :ref:`PoolVector3Array ` of vertex normals." +msgid "The surface array is an array of length ``ArrayMesh.ARRAY_MAX``. Each position in the array is filled with a sub-array containing per-vertex information. For example, the array located at ``ArrayMesh.ARRAY_NORMAL`` is a :ref:`PoolVector3Array ` of vertex normals. See :ref:`Mesh.ArrayType ` for more information." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:66 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:67 msgid "The surface array can be indexed or non-indexed. Creating a non-indexed array is as easy as not assigning an array at the index ``ArrayMesh.ARRAY_INDEX``. A non-indexed array stores unique vertex information for every triangle, meaning that when two triangles share a vertex, the vertex is duplicated in the array. An indexed surface array only stores vertex information for each unique vertex and then also stores an array of indices which maps out how to construct the triangles from the vertex array. In general, using an indexed array is faster, but it means you have to share vertex data between triangles, which is not always desired (e.g. when you want per-face normals)." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:75 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:76 msgid "Tools" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:77 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:78 msgid "Godot provides different ways of accessing and working with geometry. More information on each will be provided in the following tutorials." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:81 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:82 msgid "ArrayMesh" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:83 -msgid "The ArrayMesh resource extends Mesh to add a few different quality of life functions, and most importantly, the ability to construct a Mesh surface through scripting." +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:84 +msgid "The ArrayMesh resource extends Mesh to add a few different quality of life functions and, most importantly, the ability to construct a Mesh surface through scripting." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:86 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:87 msgid "For more information about the ArrayMesh, please see the :ref:`ArrayMesh tutorial `." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:89 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:90 msgid "MeshDataTool" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:91 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:92 msgid "The MeshDataTool is a resource that converts Mesh data into arrays of vertices, faces, and edges that can be modified at runtime." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:94 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:95 msgid "For more information about the MeshDataTool, please see the :ref:`MeshDataTool tutorial `." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:97 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:98 msgid "SurfaceTool" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:99 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:100 msgid "The SurfaceTool allows the creation of Meshes using an OpenGL 1.x immediate mode style interface." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:101 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:102 msgid "For more information about the SurfaceTool, please see the :ref:`SurfaceTool tutorial `." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:104 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:105 msgid "ImmediateGeometry" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:106 -msgid "ImmediateGeometry is a node that uses an immediate mode style interface (like SurfaceTool) to draw objects. The difference between ImmediateGeometry and the SurfaceTool is that ImmediateGeometry is a node itself that can be added to the scene tree and is drawn directly from the code. The SurfaceTool generates a Mesh that needs to be added a MeshInstance to be seen." +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:107 +msgid "ImmediateGeometry is a node that uses an immediate mode style interface (like SurfaceTool) to draw objects. The difference between ImmediateGeometry and the SurfaceTool is that ImmediateGeometry is a node itself that can be added to the scene tree and is drawn directly from the code, while the SurfaceTool generates a Mesh that needs to be added to a MeshInstance to be seen." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:111 -msgid "ImmediateGeometry is useful for prototyping because of the straightforward API, but it is slow because the geometry is rebuilt every frame. It is most useful for quickly adding simple geometry to debug visually (e.g. by drawing lines to visualize physics raycasts etc.)." +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:112 +msgid "ImmediateGeometry is useful for prototyping because of its straightforward API, but it is slow because the geometry is rebuilt every frame. It is most useful for adding simple geometry for visual debugging (e.g. by drawing lines to visualize physics raycasts etc.)." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:115 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:116 msgid "For more information about ImmediateGeometry, please see the :ref:`ImmediateGeometry tutorial `." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:118 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:119 msgid "Which one should I use?" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:120 -msgid "Which method you use depends on what you are trying to do and what kind of procedure you are comfortable with." +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:121 +msgid "Which approach you use depends on what you are trying to do and what kind of procedure you are comfortable with." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:122 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:123 msgid "Both SurfaceTool and ArrayMesh are excellent for generating static geometry (meshes) that don't change over time." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:124 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:125 msgid "Using an ArrayMesh is slightly faster than using a SurfaceTool, but the API is a little more challenging. Additionally, SurfaceTool has a few quality of life methods such as ``generate_normals()`` and ``index()``." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:127 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:128 msgid "ImmediateGeometry regenerates the mesh every frame, so it is much slower than ArrayMesh or SurfaceTool. However, if you need the geometry to change every frame anyway, it provides a much easier interface that may even be a little faster than generating an ArrayMesh every frame." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:131 -msgid "The MeshDataTool is not fast, but it gives you access to all kinds of properties of the mesh that you don't get with the others (edges, faces, etc.). It is incredibly useful when you need that sort of data to transform the mesh, but it is not a good idea to use it if that information is not needed. The MeshDataTool is best used if you are going to be using an algorithm that requires access to the face or edge array." +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:132 +msgid "The MeshDataTool is not fast, but it gives you access to all kinds of properties of the mesh that you don't get with the others (edges, faces, etc.). It is incredibly useful when you need that sort of data to transform the mesh, but it is not a good idea to use it if that extra information is not needed. The MeshDataTool is best used if you are going to be using an algorithm that requires access to the face or edge array." msgstr "" #: ../../docs/:0 diff --git a/sphinx/templates/tutorials/3d/procedural_geometry/meshdatatool.pot b/sphinx/templates/tutorials/3d/procedural_geometry/meshdatatool.pot index 7933fce2e1..4447a068e2 100644 --- a/sphinx/templates/tutorials/3d/procedural_geometry/meshdatatool.pot +++ b/sphinx/templates/tutorials/3d/procedural_geometry/meshdatatool.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -33,43 +33,43 @@ msgid "MeshDataTool can only be used on Meshes that use the PrimitiveType ``Mesh msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:16 -msgid "As an example, let's walk through the process of deforming the mesh generated in the :ref:`ArrayMesh tutorial `." +msgid "We initialize the MeshDataTool from an ArrayMesh by calling ``create_from_surface()``. If there is already data initialized in the MeshDataTool, calling ``create_from_surface()`` will clear it for you. Alternatively, you can call ``clear()`` yourself before re-using the MeshDataTool." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:18 -msgid "Assume the mesh is stored in an ArrayMesh named ``mesh``. We then initialize the MeshDataTool from ``mesh`` by calling ``create_from_surface()``. If there is already data initialized in the MeshDataTool calling ``create_from_surface()`` will clear it for you. Alternatively, you can call ``clear()`` yourself before re-using the MeshDataTool" +#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:19 +msgid "In the examples below, assume an ArrayMesh called ``mesh`` has already been created. See :ref:`ArrayMesh tutorial ` for an example of mesh generation." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:29 -msgid "``create_from_surface()`` uses the vertex arrays from the ArrayMesh to calculate two additional arrays, one for edges and one for faces." +#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:27 +msgid "``create_from_surface()`` uses the vertex arrays from the ArrayMesh to calculate two additional arrays, one for edges and one for faces, for a total of three arrays." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:32 +#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:30 msgid "An edge is a connection between any two vertices. Each edge in the edge array contains a reference to the two vertices it is composed of, and up to two faces that it is contained within." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:35 +#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:33 msgid "A face is a triangle made up of three vertices and three corresponding edges. Each face in the face array contains a reference to the three vertices and three edges it is composed of." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:38 -msgid "The vertex array contains edges, faces, normals, color, tangent, uv, uv2, bones, and weight information connected with each vertex." +#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:36 +msgid "The vertex array contains edge, face, normal, color, tangent, uv, uv2, bone, and weight information connected with each vertex." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:41 +#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:39 msgid "To access information from these arrays you use a function of the form ``get_****()``:" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:51 +#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:49 msgid "What you choose to do with these functions is up to you. A common use case is to iterate over all vertices and transform them in some way:" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:62 -msgid "Finally, ``commit_to_surface()`` adds a new surface to the ArrayMesh. So if you are dynamically updating an existing ArrayMesh, first delete the existing surface before adding a new one." +#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:60 +msgid "These modifications are not done in place on the ArrayMesh. If you are dynamically updating an existing ArrayMesh, first delete the existing surface before adding a new one using :ref:`commit_to_surface() `:" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:71 -msgid "Below is a complete example that creates a pulsing blob complete with new normals and vertex colors." +#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:69 +msgid "Below is a complete example that turns a spherical mesh called ``mesh`` into a randomly deformed blob complete with updated normals and vertex colors. See :ref:`ArrayMesh tutorial ` for how to generate the base mesh." msgstr "" #: ../../docs/:0 diff --git a/sphinx/templates/tutorials/3d/procedural_geometry/surfacetool.pot b/sphinx/templates/tutorials/3d/procedural_geometry/surfacetool.pot index f647fa0126..ecbc432081 100644 --- a/sphinx/templates/tutorials/3d/procedural_geometry/surfacetool.pot +++ b/sphinx/templates/tutorials/3d/procedural_geometry/surfacetool.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/reflection_probes.pot b/sphinx/templates/tutorials/3d/reflection_probes.pot index 1eac460efe..1f6b9dcd6a 100644 --- a/sphinx/templates/tutorials/3d/reflection_probes.pot +++ b/sphinx/templates/tutorials/3d/reflection_probes.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/spatial_material.pot b/sphinx/templates/tutorials/3d/spatial_material.pot index bce0ab7020..0e65c72c97 100644 --- a/sphinx/templates/tutorials/3d/spatial_material.pot +++ b/sphinx/templates/tutorials/3d/spatial_material.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -33,614 +33,626 @@ msgid "This tutorial explains most parameters present in ``SpatialMaterial``." msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:15 -msgid "There are three ways to add a ``SpatialMaterial`` to an object. It can be added in the *Material* property of the mesh. It can be added in the *Material* property of the node using the mesh (such as a MeshInstance node), or in the *Material Override* property of the node using the mesh." +msgid "There are 4 ways to add a ``SpatialMaterial`` to an object. It can be added in the *Material* property of the mesh. It can be added in the *Material* property of the node using the mesh (such as a MeshInstance node), the *Material Override* property of the node using the mesh, and the *Material Overlay*." msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:22 msgid "If you add a material to the mesh itself, every time that mesh is used it will have that material. If you add a material to the node using the mesh, the material will only be used by that node, it will also override the material property of the mesh. If a material is added in the *Material Override* property of the node, it will only be used by that node. It will also override the regular material property of the node and the material property of the mesh." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:30 +#: ../../docs/tutorials/3d/spatial_material.rst:29 +msgid "The *Material Overlay* property will render a material **over** the current one being used by the mesh. As an example, this can be used to put a transparent shield effect on a mesh." +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:33 msgid "Flags" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:32 +#: ../../docs/tutorials/3d/spatial_material.rst:35 msgid "Spatial materials have many flags determining the general usage of a material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:37 +#: ../../docs/tutorials/3d/spatial_material.rst:40 msgid "Transparent" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:39 +#: ../../docs/tutorials/3d/spatial_material.rst:42 msgid "In Godot, materials are not transparent unless specifically configured to be. The main reason behind this is that transparent materials are rendered using a different technique (sorted from back to front and rendered in order)." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:43 +#: ../../docs/tutorials/3d/spatial_material.rst:46 msgid "This technique is less efficient (many state changes happen) and makes the materials unusable with many mid- and post-processing effects (such as SSAO, SSR, etc.) that require perfectly opaque geometry." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:47 +#: ../../docs/tutorials/3d/spatial_material.rst:50 msgid "For this reason, materials in Godot are assumed opaque unless specified otherwise. The main settings that enable transparency are:" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:50 +#: ../../docs/tutorials/3d/spatial_material.rst:53 msgid "Transparent flag (this one)" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:51 +#: ../../docs/tutorials/3d/spatial_material.rst:54 msgid "Blend mode set to other than \"Mix\"" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:52 +#: ../../docs/tutorials/3d/spatial_material.rst:55 msgid "Enabling distance or proximity fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:55 +#: ../../docs/tutorials/3d/spatial_material.rst:58 msgid "Use Shadow to Opacity" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:57 +#: ../../docs/tutorials/3d/spatial_material.rst:60 msgid "Lighting modifies the alpha so shadowed areas are opaque and non-shadowed areas are transparent. Useful for overlaying shadows onto a camera feed in AR." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:61 +#: ../../docs/tutorials/3d/spatial_material.rst:64 msgid "Unshaded" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:63 +#: ../../docs/tutorials/3d/spatial_material.rst:66 msgid "In most cases it is common for materials to be affected by lighting (shaded)." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:65 +#: ../../docs/tutorials/3d/spatial_material.rst:68 msgid "However, in some cases you might want to show just the albedo (color) and ignore the rest. Toggling this flag on will remove all shading and display pure, unlit color." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:72 +#: ../../docs/tutorials/3d/spatial_material.rst:75 msgid "Vertex Lighting" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:74 +#: ../../docs/tutorials/3d/spatial_material.rst:77 msgid "Godot has a more or less uniform cost per pixel thanks to depth pre-pass. All lighting calculations are made by running the lighting shader on every pixel." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:77 +#: ../../docs/tutorials/3d/spatial_material.rst:80 msgid "As these calculations are costly, performance can be brought down considerably in some corner cases such as drawing several layers of transparency (which is common in particle systems). Switching to per-vertex lighting may help in these cases." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:82 +#: ../../docs/tutorials/3d/spatial_material.rst:85 msgid "Additionally, on low-end or mobile devices, switching to vertex lighting can considerably increase rendering performance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:87 +#: ../../docs/tutorials/3d/spatial_material.rst:90 msgid "Keep in mind that when vertex lighting is enabled, only directional lighting can produce shadows (for performance reasons)." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:91 +#: ../../docs/tutorials/3d/spatial_material.rst:94 msgid "No Depth Test" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:93 +#: ../../docs/tutorials/3d/spatial_material.rst:96 msgid "In order for close objects to appear over far away objects, depth testing is performed. Disabling it has the result of objects appearing over (or under) everything else." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:97 +#: ../../docs/tutorials/3d/spatial_material.rst:100 msgid "Disabling this makes the most sense for drawing indicators in world space, and works very well with the *Render Priority* property of Material (see the bottom of this page)." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:104 +#: ../../docs/tutorials/3d/spatial_material.rst:107 msgid "Use Point Size" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:106 +#: ../../docs/tutorials/3d/spatial_material.rst:109 msgid "This option is only effective when the geometry rendered is made of points (generally it's made of triangles when imported from 3D DCCs). If so, then those points can be resized (see below)." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:111 +#: ../../docs/tutorials/3d/spatial_material.rst:114 msgid "World Triplanar" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:113 +#: ../../docs/tutorials/3d/spatial_material.rst:116 msgid "When using triplanar mapping (see below, in the UV1 and UV2 settings), triplanar is computed in object local space. This option makes triplanar work in world space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:118 +#: ../../docs/tutorials/3d/spatial_material.rst:121 msgid "Fixed Size" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:120 +#: ../../docs/tutorials/3d/spatial_material.rst:123 msgid "This causes the object to be rendered at the same size no matter the distance. This is useful mostly for indicators (no depth test and high render priority) and some types of billboards." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:125 +#: ../../docs/tutorials/3d/spatial_material.rst:128 msgid "Do Not Receive Shadows" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:127 +#: ../../docs/tutorials/3d/spatial_material.rst:130 msgid "Makes the object not receive any kind of shadow that would otherwise be cast onto it." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:131 +#: ../../docs/tutorials/3d/spatial_material.rst:134 msgid "Disable Ambient Light" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:133 +#: ../../docs/tutorials/3d/spatial_material.rst:136 msgid "Makes the object not receive any kind of ambient lighting that would otherwise light it." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:137 +#: ../../docs/tutorials/3d/spatial_material.rst:140 msgid "Ensure Correct Normals" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:139 +#: ../../docs/tutorials/3d/spatial_material.rst:142 msgid "Fixes normals when non-uniform scaling is used." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:142 +#: ../../docs/tutorials/3d/spatial_material.rst:145 msgid "Vertex Color" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:144 +#: ../../docs/tutorials/3d/spatial_material.rst:147 msgid "This setting allows choosing what is done by default to vertex colors that come from your 3D modelling application. By default, they are ignored." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:150 +#: ../../docs/tutorials/3d/spatial_material.rst:153 msgid "Use as Albedo" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:152 +#: ../../docs/tutorials/3d/spatial_material.rst:155 msgid "Choosing this option means vertex color is used as albedo color." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:155 +#: ../../docs/tutorials/3d/spatial_material.rst:158 msgid "Is sRGB" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:157 +#: ../../docs/tutorials/3d/spatial_material.rst:160 msgid "Most 3D DCCs will likely export vertex colors as sRGB, so toggling this option on will help them look correct." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:161 +#: ../../docs/tutorials/3d/spatial_material.rst:164 msgid "Parameters" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:163 +#: ../../docs/tutorials/3d/spatial_material.rst:166 msgid "``SpatialMaterial`` also has several configurable parameters to tweak many aspects of the rendering:" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:169 +#: ../../docs/tutorials/3d/spatial_material.rst:172 msgid "Diffuse Mode" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:171 +#: ../../docs/tutorials/3d/spatial_material.rst:174 msgid "Specifies the algorithm used by diffuse scattering of light when hitting the object. The default is *Burley*. Other modes are also available:" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:174 +#: ../../docs/tutorials/3d/spatial_material.rst:177 msgid "**Burley:** Default mode, the original Disney Principled PBS diffuse algorithm." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:175 +#: ../../docs/tutorials/3d/spatial_material.rst:178 msgid "**Lambert:** Is not affected by roughness." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:176 +#: ../../docs/tutorials/3d/spatial_material.rst:179 msgid "**Lambert Wrap:** Extends Lambert to cover more than 90 degrees when roughness increases. Works great for hair and simulating cheap subsurface scattering. This implementation is energy conserving." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:179 +#: ../../docs/tutorials/3d/spatial_material.rst:182 msgid "**Oren Nayar:** This implementation aims to take microsurfacing into account (via roughness). Works well for clay-like materials and some types of cloth." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:181 +#: ../../docs/tutorials/3d/spatial_material.rst:184 msgid "**Toon:** Provides a hard cut for lighting, with smoothing affected by roughness. It is recommended you disable sky contribution from your environment's ambient light settings or disable ambient light in the spatial material to achieve a better effect." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:189 +#: ../../docs/tutorials/3d/spatial_material.rst:192 msgid "Specular Mode" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:191 +#: ../../docs/tutorials/3d/spatial_material.rst:194 msgid "Specifies how the specular blob will be rendered. The specular blob represents the shape of a light source reflected in the object." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:194 +#: ../../docs/tutorials/3d/spatial_material.rst:197 msgid "**ShlickGGX:** The most common blob used by PBR 3D engines nowadays." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:195 +#: ../../docs/tutorials/3d/spatial_material.rst:198 msgid "**Blinn:** Common in previous-generation engines. Not worth using nowadays, but left here for the sake of compatibility." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:197 +#: ../../docs/tutorials/3d/spatial_material.rst:200 msgid "**Phong:** Same as above." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:198 +#: ../../docs/tutorials/3d/spatial_material.rst:201 msgid "**Toon:** Creates a toon blob, which changes size depending on roughness." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:199 +#: ../../docs/tutorials/3d/spatial_material.rst:202 msgid "**Disabled:** Sometimes the blob gets in the way. Begone!" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:204 +#: ../../docs/tutorials/3d/spatial_material.rst:207 msgid "Blend Mode" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:206 +#: ../../docs/tutorials/3d/spatial_material.rst:209 msgid "Controls the blend mode for the material. Keep in mind that any mode other than *Mix* forces the object to go through the transparent pipeline." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:209 +#: ../../docs/tutorials/3d/spatial_material.rst:212 msgid "**Mix:** Default blend mode, alpha controls how much the object is visible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:210 +#: ../../docs/tutorials/3d/spatial_material.rst:213 msgid "**Add:** Object is blended additively, nice for flares or some fire-like effects." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:212 +#: ../../docs/tutorials/3d/spatial_material.rst:215 msgid "**Sub:** Object is subtracted." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:213 +#: ../../docs/tutorials/3d/spatial_material.rst:216 msgid "**Mul:** Object is multiplied." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:218 +#: ../../docs/tutorials/3d/spatial_material.rst:221 msgid "Cull Mode" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:220 +#: ../../docs/tutorials/3d/spatial_material.rst:223 msgid "Determines which side of the object is not drawn when backfaces are rendered:" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:222 +#: ../../docs/tutorials/3d/spatial_material.rst:225 msgid "**Back:** The back of the object is culled when not visible (default)." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:223 +#: ../../docs/tutorials/3d/spatial_material.rst:226 msgid "**Front:** The front of the object is culled when not visible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:224 +#: ../../docs/tutorials/3d/spatial_material.rst:227 msgid "**Disabled:** Used for objects that are double-sided (no culling is performed)." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:228 +#: ../../docs/tutorials/3d/spatial_material.rst:231 msgid "By default, Blender has backface culling disabled on materials and will export materials to match how they render in Blender. This means that materials in Godot will have their cull mode set to **Disabled**. This can decrease performance since backfaces will be rendered, even when they are being culled by other faces. To resolve this, enable **Backface Culling** in Blender's Materials tab, then export the scene to glTF again." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:236 +#: ../../docs/tutorials/3d/spatial_material.rst:239 msgid "Depth Draw Mode" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:238 +#: ../../docs/tutorials/3d/spatial_material.rst:241 msgid "Specifies when depth rendering must take place." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:240 +#: ../../docs/tutorials/3d/spatial_material.rst:243 msgid "**Opaque Only (default):** Depth is only drawn for opaque objects." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:241 +#: ../../docs/tutorials/3d/spatial_material.rst:244 msgid "**Always:** Depth draw is drawn for both opaque and transparent objects." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:242 +#: ../../docs/tutorials/3d/spatial_material.rst:245 msgid "**Never:** No depth draw takes place (do not confuse this with the No Depth Test option above)." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:244 +#: ../../docs/tutorials/3d/spatial_material.rst:247 msgid "**Depth Pre-Pass:** For transparent objects, an opaque pass is made first with the opaque parts, then transparency is drawn above. Use this option with transparent grass or tree foliage." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:251 +#: ../../docs/tutorials/3d/spatial_material.rst:254 msgid "Line Width" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:253 +#: ../../docs/tutorials/3d/spatial_material.rst:256 msgid "When drawing lines, specify the width of the lines being drawn. This option is not available on most modern hardware." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:257 +#: ../../docs/tutorials/3d/spatial_material.rst:260 msgid "Point Size" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:259 +#: ../../docs/tutorials/3d/spatial_material.rst:262 msgid "When drawing points, specify the point size in pixels." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:262 +#: ../../docs/tutorials/3d/spatial_material.rst:265 msgid "Billboard Mode" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:264 +#: ../../docs/tutorials/3d/spatial_material.rst:267 msgid "Enables billboard mode for drawing materials. This controls how the object faces the camera:" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:267 +#: ../../docs/tutorials/3d/spatial_material.rst:270 msgid "**Disabled:** Billboard mode is disabled." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:268 +#: ../../docs/tutorials/3d/spatial_material.rst:271 msgid "**Enabled:** Billboard mode is enabled, the object's -Z axis will always face the camera." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:270 +#: ../../docs/tutorials/3d/spatial_material.rst:273 msgid "**Y-Billboard:** The object's X axis will always be aligned with the camera." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:271 +#: ../../docs/tutorials/3d/spatial_material.rst:274 msgid "**Particles:** Most suited for particle systems, because it allows specifying animation options." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:276 +#: ../../docs/tutorials/3d/spatial_material.rst:279 msgid "The above options are only enabled for Particle Billboard." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:279 +#: ../../docs/tutorials/3d/spatial_material.rst:282 msgid "Billboard Keep Scale" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:281 +#: ../../docs/tutorials/3d/spatial_material.rst:284 msgid "Enables scaling a mesh in billboard mode." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:284 +#: ../../docs/tutorials/3d/spatial_material.rst:287 msgid "Grow" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:286 +#: ../../docs/tutorials/3d/spatial_material.rst:289 msgid "Grows the object vertices in the direction pointed by their normals:" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:290 +#: ../../docs/tutorials/3d/spatial_material.rst:293 msgid "This is commonly used to create cheap outlines. Add a second material pass, make it black and unshaded, reverse culling (Cull Front), and add some grow:" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:297 +#: ../../docs/tutorials/3d/spatial_material.rst:300 msgid "Use Alpha Scissor" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:299 +#: ../../docs/tutorials/3d/spatial_material.rst:302 msgid "When transparency other than ``0`` or ``1`` is not needed, it's possible to set a threshold to prevent the object from rendering semi-transparent pixels." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:304 +#: ../../docs/tutorials/3d/spatial_material.rst:307 msgid "This renders the object via the opaque pipeline, which is faster and allows it to use mid- and post-process effects such as SSAO, SSR, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:308 +#: ../../docs/tutorials/3d/spatial_material.rst:311 msgid "Material colors, maps and channels" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:310 +#: ../../docs/tutorials/3d/spatial_material.rst:313 msgid "Besides the parameters, what defines materials themselves are the colors, textures, and channels. Godot supports an extensive list of them. They are described in detail below:" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:315 +#: ../../docs/tutorials/3d/spatial_material.rst:318 msgid "Albedo" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:317 +#: ../../docs/tutorials/3d/spatial_material.rst:320 msgid "*Albedo* is the base color for the material, on which all the other settings operate. When set to *Unshaded*, this is the only color that is visible. In previous versions of Godot, this channel was named *Diffuse*. The change of name mainly happened because, in PBR (Physically Based Rendering), this color affects many more calculations than just the diffuse lighting path." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:323 +#: ../../docs/tutorials/3d/spatial_material.rst:326 msgid "Albedo color and texture can be used together as they are multiplied." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:325 +#: ../../docs/tutorials/3d/spatial_material.rst:328 msgid "*Alpha channel* in albedo color and texture is also used for the object transparency. If you use a color or texture with *alpha channel*, make sure to either enable transparency or *alpha scissoring* for it to work." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:330 +#: ../../docs/tutorials/3d/spatial_material.rst:333 msgid "Metallic" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:332 +#: ../../docs/tutorials/3d/spatial_material.rst:335 msgid "Godot uses a metallic model over competing models due to its simplicity. This parameter defines how reflective the material is. The more reflective, the less diffuse/ambient light affects the material and the more light is reflected. This model is called \"energy-conserving\"." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:337 +#: ../../docs/tutorials/3d/spatial_material.rst:340 msgid "The *Specular* parameter is a general amount for the reflectivity (unlike *Metallic*, this is not energy-conserving, so leave it at ``0.5`` and don't touch it unless you need to)." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:341 +#: ../../docs/tutorials/3d/spatial_material.rst:344 msgid "The minimum internal reflectivity is ``0.04``, so it's impossible to make a material completely unreflective, just like in real life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:347 +#: ../../docs/tutorials/3d/spatial_material.rst:350 msgid "Roughness" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:349 +#: ../../docs/tutorials/3d/spatial_material.rst:352 msgid "*Roughness* affects the way reflection happens. A value of ``0`` makes it a perfect mirror while a value of ``1`` completely blurs the reflection (simulating natural microsurfacing). Most common types of materials can be achieved with the right combination of *Metallic* and *Roughness*." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:360 msgid "Emission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:359 +#: ../../docs/tutorials/3d/spatial_material.rst:362 msgid "*Emission* specifies how much light is emitted by the material (keep in mind this does not include light surrounding geometry unless :ref:`doc_gi_probes` are used). This value is added to the resulting final image and is not affected by other lighting in the scene." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:367 +#: ../../docs/tutorials/3d/spatial_material.rst:370 msgid "Normal map" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:369 +#: ../../docs/tutorials/3d/spatial_material.rst:372 msgid "Normal mapping allows you to set a texture that represents finer shape detail. This does not modify geometry, only the incident angle for light. In Godot, only the red and green channels of normal maps are used for better compression and wider compatibility." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:378 +#: ../../docs/tutorials/3d/spatial_material.rst:381 msgid "Godot requires the normal map to use the X+, Y+ and Z+ coordinates, this is known as OpenGL style. If you've imported a material made to be used with another engine it may be DirectX style, in which case the normal map needs to be converted so its Y axis is flipped." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:383 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "More information about normal maps (including a coordinate order table for popular engines) can be found `here `__." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:391 msgid "Rim" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:390 +#: ../../docs/tutorials/3d/spatial_material.rst:393 msgid "Some fabrics have small micro-fur that causes light to scatter around it. Godot emulates this with the *Rim* parameter. Unlike other rim lighting implementations, which just use the emission channel, this one actually takes light into account (no light means no rim). This makes the effect considerably more believable." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:397 +#: ../../docs/tutorials/3d/spatial_material.rst:400 msgid "Rim size depends on roughness, and there is a special parameter to specify how it must be colored. If *Tint* is ``0``, the color of the light is used for the rim. If *Tint* is ``1``, then the albedo of the material is used. Using intermediate values generally works best." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:403 +#: ../../docs/tutorials/3d/spatial_material.rst:406 msgid "Clearcoat" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:405 -#: ../../docs/tutorials/3d/spatial_material.rst:414 -#: ../../docs/tutorials/3d/spatial_material.rst:436 -#: ../../docs/tutorials/3d/spatial_material.rst:449 -#: ../../docs/tutorials/3d/spatial_material.rst:469 +#: ../../docs/tutorials/3d/spatial_material.rst:408 +#: ../../docs/tutorials/3d/spatial_material.rst:426 +#: ../../docs/tutorials/3d/spatial_material.rst:448 +#: ../../docs/tutorials/3d/spatial_material.rst:461 +#: ../../docs/tutorials/3d/spatial_material.rst:481 msgid "*This feature is only available when using the GLES3 backend.*" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:407 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "The *Clearcoat* parameter is used to add a secondary pass of transparent coat to the material. This is common in car paint and toys. In practice, it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:412 +#: ../../docs/tutorials/3d/spatial_material.rst:414 +msgid "The effect is extremely subtle in Godot 3 releases, and may require specific lighting or looking at a material a specific way to notice a difference. This can be seen in the image below where clearcoat is turned on in the right." +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:421 +msgid "The effect will be more noticeable in Godot 4." +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:424 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:416 +#: ../../docs/tutorials/3d/spatial_material.rst:428 msgid "This changes the shape of the specular blob and aligns it to tangent space. Anisotropy is commonly used with hair, or to make materials such as brushed aluminum more realistic. It works especially well when combined with flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:423 +#: ../../docs/tutorials/3d/spatial_material.rst:435 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:425 +#: ../../docs/tutorials/3d/spatial_material.rst:437 msgid "It is possible to specify a baked ambient occlusion map. This map affects how much ambient light reaches each surface of the object (it does not affect direct light by default). While it is possible to use Screen-Space Ambient Occlusion (SSAO) to generate ambient occlusion, nothing beats the quality of a well-baked AO map. It is recommended to bake ambient occlusion whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:434 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Depth" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:450 msgid "Setting a depth map on a material produces a ray-marched search to emulate the proper displacement of cavities along the view direction. This is not real added geometry, but an illusion of depth. It may not work for complex objects, but it produces a realistic depth effect for textures. For best results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:447 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:463 msgid "This effect emulates light that penetrates an object's surface, is scattered, and then comes out. It is useful to create realistic skin, marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:458 +#: ../../docs/tutorials/3d/spatial_material.rst:470 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:460 +#: ../../docs/tutorials/3d/spatial_material.rst:472 msgid "This controls how much light from the lit side (visible to light) is transferred to the dark side (opposite from the light). This works well for thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:467 +#: ../../docs/tutorials/3d/spatial_material.rst:479 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:471 +#: ../../docs/tutorials/3d/spatial_material.rst:483 msgid "When refraction is enabled, it supersedes alpha blending, and Godot attempts to fetch information from behind the object being rendered instead. This allows distorting the transparency in a way similar to refraction in real life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:478 +#: ../../docs/tutorials/3d/spatial_material.rst:490 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:480 +#: ../../docs/tutorials/3d/spatial_material.rst:492 msgid "Godot allows using secondary albedo and normal maps to generate a detail texture, which can be blended in many ways. By combining this with secondary UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:486 +#: ../../docs/tutorials/3d/spatial_material.rst:498 msgid "There are several settings that control how detail is used." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:488 +#: ../../docs/tutorials/3d/spatial_material.rst:500 msgid "Mask: The detail mask is a black and white image used to control where the blending takes place on a texture. White is for the detail textures, Black is for the regular material textures, different shades of gray are for partial blending of the material textures and detail textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:493 +#: ../../docs/tutorials/3d/spatial_material.rst:505 msgid "Blend Mode: These four modes control how the textures are blended together." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:495 +#: ../../docs/tutorials/3d/spatial_material.rst:507 msgid "Mix: Combines pixel values of both textures. At black, only show the material texture, at white, only show the detail texture. Values of gray create a smooth blend between the two." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:499 +#: ../../docs/tutorials/3d/spatial_material.rst:511 msgid "Add: Adds pixel values of one Texture with the other. Unlike mix mode both textures are completely mixed at white parts of a mask and not at gray parts. The original texture is mostly unchanged at black" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:503 +#: ../../docs/tutorials/3d/spatial_material.rst:515 msgid "Sub: Subtracts pixel values of one texture with the other. The second texture is completely subtracted at white parts of a mask with only a little subtraction in black parts, gray parts being different levels of subtraction based on the exact texture." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:508 +#: ../../docs/tutorials/3d/spatial_material.rst:520 msgid "Mul: Multiplies the RGB channel numbers for each pixel from the top texture with the values for the corresponding pixel from the bottom texture." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:511 +#: ../../docs/tutorials/3d/spatial_material.rst:523 msgid "Albedo: This is where you put an albedo texture you want to blend. If nothing is in this slot it will be interpreted as white by default." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:514 +#: ../../docs/tutorials/3d/spatial_material.rst:526 msgid "Normal: This is where you put a normal texture you want to blend. If nothing is in this slot it will be interpreted as a flat normal map. This can still be used even if the material does not have normal map enabled." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:519 +#: ../../docs/tutorials/3d/spatial_material.rst:531 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:521 +#: ../../docs/tutorials/3d/spatial_material.rst:533 msgid "Godot supports two UV channels per material. Secondary UV is often useful for ambient occlusion or emission (baked light). UVs can be scaled and offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:526 +#: ../../docs/tutorials/3d/spatial_material.rst:538 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:528 +#: ../../docs/tutorials/3d/spatial_material.rst:540 msgid "Triplanar mapping is supported for both UV1 and UV2. This is an alternative way to obtain texture coordinates, sometimes called \"Autotexture\". Textures are sampled in X, Y and Z and blended by the normal. Triplanar mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:533 +#: ../../docs/tutorials/3d/spatial_material.rst:545 msgid "In the image below, you can see how all primitives share the same material with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:539 +#: ../../docs/tutorials/3d/spatial_material.rst:551 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:541 +#: ../../docs/tutorials/3d/spatial_material.rst:553 msgid "Godot allows materials to fade by proximity to each other as well as depending on the distance from the viewer. Proximity fade is useful for effects such as soft particles or a mass of water with a smooth blending to the shores. Distance fade is useful for light shafts or indicators that are only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:547 +#: ../../docs/tutorials/3d/spatial_material.rst:559 msgid "Keep in mind enabling these enables alpha blending, so abusing them for an entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:553 +#: ../../docs/tutorials/3d/spatial_material.rst:565 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:555 +#: ../../docs/tutorials/3d/spatial_material.rst:567 msgid "The rendering order of objects can be changed, although this is mostly useful for transparent objects (or opaque objects that perform depth draw but no color draw, such as cracks on the floor)." msgstr "" diff --git a/sphinx/templates/tutorials/3d/using_gridmaps.pot b/sphinx/templates/tutorials/3d/using_gridmaps.pot index f500afb119..9704cc44f3 100644 --- a/sphinx/templates/tutorials/3d/using_gridmaps.pot +++ b/sphinx/templates/tutorials/3d/using_gridmaps.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -81,50 +81,74 @@ msgid "Only the materials from within the meshes are used when generating the me msgstr "" #: ../../docs/tutorials/3d/using_gridmaps.rst:66 -msgid "Exporting the MeshLibrary" +msgid "NavigationMeshes" msgstr "" #: ../../docs/tutorials/3d/using_gridmaps.rst:68 -msgid "To export the library, click on Scene -> Convert To.. -> MeshLibrary.., and save it as a resource." +msgid "Like all mesh instances, MeshLibrary items can be assigned a :ref:`class_NavigationMesh` resource, which can be created manually, or baked as described below." msgstr "" -#: ../../docs/tutorials/3d/using_gridmaps.rst:73 -msgid "You can find an already exported MeshLibrary in the project named \"MeshLibrary.tres\"." -msgstr "" - -#: ../../docs/tutorials/3d/using_gridmaps.rst:76 -msgid "Using GridMap" +#: ../../docs/tutorials/3d/using_gridmaps.rst:71 +msgid "To create the NavigationMesh from a MeshLibrary scene export, place a :ref:`class_NavigationMeshInstance` child node below the main MeshInstance for the GridMap item. Add a valid NavigationMesh resource to the NavigationMeshInstance and some source geometry nodes below and bake the NavigationMesh." msgstr "" #: ../../docs/tutorials/3d/using_gridmaps.rst:78 -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 \"Theme\" property in the Inspector." +msgid "With small grid cells it is often necessary to reduce the NavigationMesh properties for agent radius and region minimum size." msgstr "" -#: ../../docs/tutorials/3d/using_gridmaps.rst:84 -msgid "The \"Cell/Size\" property should be set to the size of your meshes. You can leave it at the default value for the demo. Set the \"Center Y\" property to \"Off\"." +#: ../../docs/tutorials/3d/using_gridmaps.rst:83 +msgid "Nodes below the NavigationMeshInstance are ignored for the MeshLibrary scene export, so additional nodes can be added as source geometry just for baking the navmesh." msgstr "" -#: ../../docs/tutorials/3d/using_gridmaps.rst:87 -msgid "Now you can start designing the level by choosing a tile from the palette and placing it with Left-Click in the editor window. To remove a tile, hold :kbd:`Shift` and use Right-click." +#: ../../docs/tutorials/3d/using_gridmaps.rst:88 +msgid "The baked cell size of the NavigationMesh must match the NavigationServer map cell size to properly merge the navigation meshes of different grid cells." msgstr "" -#: ../../docs/tutorials/3d/using_gridmaps.rst:91 -msgid "Click on the \"GridMap\" menu to see options and shortcuts. For example, pressing :kbd:`S` rotates a tile around the y-axis." +#: ../../docs/tutorials/3d/using_gridmaps.rst:92 +msgid "Exporting the MeshLibrary" msgstr "" -#: ../../docs/tutorials/3d/using_gridmaps.rst:96 -msgid "Holding :kbd:`Shift` and dragging with the left mouse button will draw a selection box. You can duplicate or clear the selected area using the respective menu options." +#: ../../docs/tutorials/3d/using_gridmaps.rst:94 +msgid "To export the library, click on Scene -> Convert To.. -> MeshLibrary.., and save it as a resource." +msgstr "" + +#: ../../docs/tutorials/3d/using_gridmaps.rst:99 +msgid "You can find an already exported MeshLibrary in the project named \"MeshLibrary.tres\"." msgstr "" #: ../../docs/tutorials/3d/using_gridmaps.rst:102 -msgid "In the menu, you can also change the axis you're drawing on, as well as shift the drawing plane higher or lower on its axis." +msgid "Using GridMap" msgstr "" -#: ../../docs/tutorials/3d/using_gridmaps.rst:108 -msgid "Using GridMap in code" +#: ../../docs/tutorials/3d/using_gridmaps.rst:104 +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 \"Theme\" property in the Inspector." msgstr "" #: ../../docs/tutorials/3d/using_gridmaps.rst:110 +msgid "The \"Cell/Size\" property should be set to the size of your meshes. You can leave it at the default value for the demo. Set the \"Center Y\" property to \"Off\"." +msgstr "" + +#: ../../docs/tutorials/3d/using_gridmaps.rst:113 +msgid "Now you can start designing the level by choosing a tile from the palette and placing it with Left-Click in the editor window. To remove a tile, hold :kbd:`Shift` and use Right-click." +msgstr "" + +#: ../../docs/tutorials/3d/using_gridmaps.rst:117 +msgid "Click on the \"GridMap\" menu to see options and shortcuts. For example, pressing :kbd:`S` rotates a tile around the y-axis." +msgstr "" + +#: ../../docs/tutorials/3d/using_gridmaps.rst:122 +msgid "Holding :kbd:`Shift` and dragging with the left mouse button will draw a selection box. You can duplicate or clear the selected area using the respective menu options." +msgstr "" + +#: ../../docs/tutorials/3d/using_gridmaps.rst:128 +msgid "In the menu, you can also change the axis you're drawing on, as well as shift the drawing plane higher or lower on its axis." +msgstr "" + +#: ../../docs/tutorials/3d/using_gridmaps.rst:134 +msgid "Using GridMap in code" +msgstr "" + +#: ../../docs/tutorials/3d/using_gridmaps.rst:136 msgid "See :ref:`class_GridMap` for details on the node's methods and member variables." msgstr "" diff --git a/sphinx/templates/tutorials/3d/using_multi_mesh_instance.pot b/sphinx/templates/tutorials/3d/using_multi_mesh_instance.pot index 155078d5c0..092a3ff55c 100644 --- a/sphinx/templates/tutorials/3d/using_multi_mesh_instance.pot +++ b/sphinx/templates/tutorials/3d/using_multi_mesh_instance.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/using_transforms.pot b/sphinx/templates/tutorials/3d/using_transforms.pot index a3e123583f..c7cb4266f6 100644 --- a/sphinx/templates/tutorials/3d/using_transforms.pot +++ b/sphinx/templates/tutorials/3d/using_transforms.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -184,119 +184,119 @@ msgstr "" msgid "It is possible to rotate a transform, either by multiplying its basis by another (this is called accumulation), or by using the rotation methods." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:164 +#: ../../docs/tutorials/3d/using_transforms.rst:168 msgid "A method in Spatial simplifies this:" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:181 +#: ../../docs/tutorials/3d/using_transforms.rst:185 msgid "This rotates the node relative to the parent node." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:183 +#: ../../docs/tutorials/3d/using_transforms.rst:187 msgid "To rotate relative to object space (the node's own transform), use the following:" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:197 +#: ../../docs/tutorials/3d/using_transforms.rst:201 msgid "Precision errors" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:199 +#: ../../docs/tutorials/3d/using_transforms.rst:203 msgid "Doing successive operations on transforms will result in a loss of precision due to floating-point error. This means the scale of each axis may no longer be exactly ``1.0``, and they may not be exactly ``90`` degrees from each other." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:201 +#: ../../docs/tutorials/3d/using_transforms.rst:205 msgid "If a transform is rotated every frame, it will eventually start deforming over time. This is unavoidable." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:203 +#: ../../docs/tutorials/3d/using_transforms.rst:207 msgid "There are two different ways to handle this. The first is to *orthonormalize* the transform after some time (maybe once per frame if you modify it every frame):" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:214 +#: ../../docs/tutorials/3d/using_transforms.rst:218 msgid "This will make all axes have ``1.0`` length again and be ``90`` degrees from each other. However, any scale applied to the transform will be lost." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:216 +#: ../../docs/tutorials/3d/using_transforms.rst:220 msgid "It is recommended you not scale nodes that are going to be manipulated; scale their children nodes instead (such as MeshInstance). If you absolutely must scale the node, then re-apply it at the end:" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:230 +#: ../../docs/tutorials/3d/using_transforms.rst:234 msgid "Obtaining information" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:232 +#: ../../docs/tutorials/3d/using_transforms.rst:236 msgid "You might be thinking at this point: **\"Ok, but how do I get angles from a transform?\"**. The answer again is: you don't. You must do your best to stop thinking in angles." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:234 +#: ../../docs/tutorials/3d/using_transforms.rst:238 msgid "Imagine you need to shoot a bullet in the direction your player is facing. Just use the forward axis (commonly ``Z`` or ``-Z``)." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:247 +#: ../../docs/tutorials/3d/using_transforms.rst:251 msgid "Is the enemy looking at the player? Use the dot product for this (see the :ref:`doc_vector_math` tutorial for an explanation of the dot product):" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:266 +#: ../../docs/tutorials/3d/using_transforms.rst:270 msgid "Strafe left:" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:283 +#: ../../docs/tutorials/3d/using_transforms.rst:287 msgid "Jump:" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:302 +#: ../../docs/tutorials/3d/using_transforms.rst:306 msgid "All common behaviors and logic can be done with just vectors." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:305 +#: ../../docs/tutorials/3d/using_transforms.rst:309 msgid "Setting information" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:307 +#: ../../docs/tutorials/3d/using_transforms.rst:311 msgid "There are, of course, cases where you want to set information to a transform. Imagine a first person controller or orbiting camera. Those are definitely done using angles, because you *do want* the transforms to happen in a specific order." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:309 +#: ../../docs/tutorials/3d/using_transforms.rst:313 msgid "For such cases, keep the angles and rotations *outside* the transform and set them every frame. Don't try to retrieve and re-use them because the transform is not meant to be used this way." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:311 +#: ../../docs/tutorials/3d/using_transforms.rst:315 msgid "Example of looking around, FPS style:" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:353 +#: ../../docs/tutorials/3d/using_transforms.rst:357 msgid "As you can see, in such cases it's even simpler to keep the rotation outside, then use the transform as the *final* orientation." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:356 +#: ../../docs/tutorials/3d/using_transforms.rst:360 msgid "Interpolating with quaternions" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:358 +#: ../../docs/tutorials/3d/using_transforms.rst:362 msgid "Interpolating between two transforms can efficiently be done with quaternions. More information about how quaternions work can be found in other places around the Internet. For practical use, it's enough to understand that pretty much their main use is doing a closest path interpolation. As in, if you have two rotations, a quaternion will smoothly allow interpolation between them using the closest axis." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:360 +#: ../../docs/tutorials/3d/using_transforms.rst:364 msgid "Converting a rotation to quaternion is straightforward." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:383 +#: ../../docs/tutorials/3d/using_transforms.rst:387 msgid "The :ref:`class_Quat` type reference has more information on the datatype (it can also do transform accumulation, transform points, etc., though this is used less often). If you interpolate or apply operations to quaternions many times, keep in mind they need to be eventually normalized. Otherwise, they will also suffer from numerical precision errors." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:389 +#: ../../docs/tutorials/3d/using_transforms.rst:393 msgid "Quaternions are useful when doing camera/path/etc. interpolations, as the result will always be correct and smooth." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:392 +#: ../../docs/tutorials/3d/using_transforms.rst:396 msgid "Transforms are your friend" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:394 +#: ../../docs/tutorials/3d/using_transforms.rst:398 msgid "For most beginners, getting used to working with transforms can take some time. However, once you get used to them, you will appreciate their simplicity and power." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:396 +#: ../../docs/tutorials/3d/using_transforms.rst:400 msgid "Don't hesitate to ask for help on this topic in any of Godot's `online communities `_ and, once you become confident enough, please help others!" msgstr "" diff --git a/sphinx/templates/tutorials/animation/2d_skeletons.pot b/sphinx/templates/tutorials/animation/2d_skeletons.pot index cb671a61b1..00e577c0de 100644 --- a/sphinx/templates/tutorials/animation/2d_skeletons.pot +++ b/sphinx/templates/tutorials/animation/2d_skeletons.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/animation/animation_tree.pot b/sphinx/templates/tutorials/animation/animation_tree.pot index 0954ddd8f3..5d770c981e 100644 --- a/sphinx/templates/tutorials/animation/animation_tree.pot +++ b/sphinx/templates/tutorials/animation/animation_tree.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -25,7 +25,7 @@ msgid "Introduction" msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:9 -msgid "With :ref:`AnimationPlayer `, Godot has one of the most flexible animation systems that you can find in any game engine. The ability to animate pretty much any property in any node or resource, as well as having dedicated transform, bezier, function calling, audio and sub-animation tracks, is pretty much unique." +msgid "With :ref:`AnimationPlayer `, Godot has one of the most flexible animation systems that you can find in any game engine. The ability to animate almost any property in any node or resource, as well as having dedicated transform, bezier, function calling, audio and sub-animation tracks, is pretty much unique." msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:13 @@ -213,11 +213,11 @@ msgid "StateMachine" msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:166 -msgid "This node is a relatively simple state machine. Root nodes can be created and connected via lines. States are connected via *Transitions*, which are connections with special properties. Transitions are uni-directional, but two can be used to connect in both ways." +msgid "This node acts as a state machine with root nodes as states. Root nodes can be created and connected via lines. States are connected via *Transitions*, which are connections with special properties. Transitions are uni-directional, but two can be used to connect in both directions." msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:171 -msgid "There are many types of transitions:" +msgid "There are many types of transition:" msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:175 @@ -253,11 +253,11 @@ msgid "*Xfade Time* is the time to cross-fade between this state and the next." msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:188 -msgid "*Priority* is used together with the ``travel()`` function from code (more on this later). When travelling from a state to another, give more priority to this node." +msgid "*Priority* is used together with the ``travel()`` function from code (more on this later). Lower priority transitions are preferred when travelling through the tree." msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:189 -msgid "*Disabled* allows to disable this transition (it will not be used during travel or auto advance)." +msgid "*Disabled* toggles disabling this transition (when disabled, it will not be used during travel or auto advance)." msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:193 @@ -281,7 +281,7 @@ msgid "This can be fed to functions such as :ref:`KinematicBody.move_and_slide < msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:216 -msgid "There is also a tool node, ``RootMotionView``, that can be placed in a scene and will act as a custom floor for your character and animations (this node is normally disabled during the game)." +msgid "There is also a tool node, ``RootMotionView``, that can be placed in a scene and will act as a custom floor for your character and animations (this node is disabled by default during the game)." msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:223 @@ -293,7 +293,7 @@ msgid "After building the tree and previewing it, the only question remaining is msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:227 -msgid "Keep in mind that the animation nodes are just resources and, as such, they are shared between all the instances. Setting values in the nodes directly will affect all instances of the scene that uses this ``AnimationTree``. This has some cool use cases, though, e.g. you can copy and paste parts of your animation tree, or reuse nodes with a complex layout (such as a state machine or blend space) in different animation trees." +msgid "Keep in mind that the animation nodes are just resources and, as such, they are shared between all instances using them. Setting values in the nodes directly will affect all instances of the scene that uses this ``AnimationTree``. This is generally undesirable, but does have some cool use cases, e.g. you can copy and paste parts of your animation tree, or reuse nodes with a complex layout (such as a state machine or blend space) in different animation trees." msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:232 @@ -317,18 +317,18 @@ msgid "State machine travel" msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:261 -msgid "One of the nice features in Godot's ``StateMachine`` implementation is the ability to travel. The graph can be instructed to go from the current state to another one, while visiting all the intermediate ones. This is done via the A\\* algorithm. In the absence of any transition between the current state and the destination state, the graph teleports to the destination state." +msgid "One of the nice features in Godot's ``StateMachine`` implementation is the ability to travel. The graph can be instructed to go from the current state to another one, while visiting all the intermediate ones. This is done via the A\\* algorithm. In the absence of any viable set of transitions starting at the current state and finishing at the destination state, the graph teleports to the destination state." msgstr "" -#: ../../docs/tutorials/animation/animation_tree.rst:265 +#: ../../docs/tutorials/animation/animation_tree.rst:266 msgid "To use the travel ability, you should first retrieve the :ref:`AnimationNodeStateMachinePlayback ` object from the ``AnimationTree`` node (it is exported as a property)." msgstr "" -#: ../../docs/tutorials/animation/animation_tree.rst:278 +#: ../../docs/tutorials/animation/animation_tree.rst:279 msgid "Once retrieved, it can be used by calling one of the many functions it offers:" msgstr "" -#: ../../docs/tutorials/animation/animation_tree.rst:289 +#: ../../docs/tutorials/animation/animation_tree.rst:290 msgid "The state machine must be running before you can travel. Make sure to either call ``start()`` or choose a node to **Autoplay on Load**." msgstr "" diff --git a/sphinx/templates/tutorials/animation/cutout_animation.pot b/sphinx/templates/tutorials/animation/cutout_animation.pot index 745f9b65b5..7011a41471 100644 --- a/sphinx/templates/tutorials/animation/cutout_animation.pot +++ b/sphinx/templates/tutorials/animation/cutout_animation.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/animation/index.pot b/sphinx/templates/tutorials/animation/index.pot index 5874b498f4..0dbadf6d99 100644 --- a/sphinx/templates/tutorials/animation/index.pot +++ b/sphinx/templates/tutorials/animation/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/animation/introduction.pot b/sphinx/templates/tutorials/animation/introduction.pot index 088b232980..3016512be2 100644 --- a/sphinx/templates/tutorials/animation/introduction.pot +++ b/sphinx/templates/tutorials/animation/introduction.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/animation/playing_videos.pot b/sphinx/templates/tutorials/animation/playing_videos.pot new file mode 100644 index 0000000000..6297b58a91 --- /dev/null +++ b/sphinx/templates/tutorials/animation/playing_videos.pot @@ -0,0 +1,257 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2022, 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 , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine 3.5\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/tutorials/animation/playing_videos.rst:4 +msgid "Playing videos" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:6 +msgid "Godot supports video playback with the :ref:`class_VideoPlayer` node." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:9 +msgid "Supported playback formats" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:11 +msgid "The only supported format in core is **Ogg Theora** (not to be confused with Ogg Vorbis audio). It's possible for extensions to bring support for additional formats, but no such extensions exist yet as of July 2022." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:15 +msgid "H.264 and H.265 cannot be supported in core Godot, as they are both encumbered by software patents. AV1 is royalty-free, but it remains slow to decode on the CPU and hardware decoding support isn't readily available on all GPUs in use yet." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:20 +msgid "WebM is supported in core in Godot 3.x, but support for it will be removed in 4.0 as it proved to be too buggy and difficult to maintain. Therefore, **using WebM is not recommended**." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:26 +msgid "You may find videos with an ``.ogg`` or ``.ogx`` extensions, which are generic extensions for data within an Ogg container." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:29 +msgid "Renaming these file extensions to ``.ogv`` *may* allow the videos to be imported in Godot. However, not all files with ``.ogg`` or ``.ogx`` extensions are videos - some of them may only contain audio." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:34 +msgid "Setting up VideoPlayer" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:36 +msgid "Create a VideoPlayer node using the Create New Node dialog." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:37 +msgid "Select the VideoPlayer node in the scene tree dock, go to the inspector and load an ``.ogv`` file in the Stream property." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:40 +msgid "If you don't have your video in Ogg Theora format yet, jump to :ref:`doc_playing_videos_recommended_theora_encoding_settings`." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:43 +msgid "If you want the video to play as soon as the scene is loaded, check **Autoplay** in the inspector. If not, leave **Autoplay** disabled and call ``play()`` on the VideoPlayer node in a script to start playback when desired." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:49 +msgid "Handling resizing and different aspect ratios" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:51 +msgid "By default in Godot 4.0, the VideoPlayer will automatically be resized to match the video's resolution. You can make it follow usual :ref:`class_Control` sizing by enabling **Expand** on the VideoPlayer node." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:55 +msgid "To adjust how the VideoPlayer node resizes depending on window size, adjust the anchors using the **Layout** menu at the top of the 2D editor viewport. However, this setup may not be powerful enough to handle all use cases, such as playing fullscreen videos without distorting the video (but with empty space on the edges instead). For more control, you can use an :ref:`class_AspectRatioContainer` node, which is designed to handle this kind of use case:" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:63 +msgid "Add an AspectRatioContainer node. Make sure it is not a child of any other container node. Select the AspectRatioContainer node, then set its **Layout** at the top of the 2D editor to **Full Rect**. Set **Ratio** in the AspectRatioContainer node to match your video's aspect ratio. You can use math formulas in the inspector to help yourself. Remember to make one of the operands a float. Otherwise, the division's result will always be an integer." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:75 +msgid "AspectRatioContainer's Ratio property being modified in the editor inspector" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:75 +msgid "This will evaluate to (approximately) 1.777778" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:77 +msgid "Once you've configured the AspectRatioContainer, reparent your VideoPlayer node to be a child of the AspectRatioContainer node. Make sure **Expand** is disabled on the VideoPlayer. Your video should now scale automatically to fit the whole screen while avoiding distortion." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:84 +msgid "See :ref:`doc_multiple_resolutions` for more tips on supporting multiple aspect ratios in your project." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:88 +msgid "Displaying a video on a 3D surface" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:90 +msgid "Using a VideoPlayer node as a child of a :ref:`class_Viewport` node, it's possible to display any 2D node on a 3D surface. For example, this can be used to display animated billboards when frame-by-frame animation would require too much memory." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:95 +msgid "This can be done with the following steps:" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:97 +msgid "Create a :ref:`class_Viewport` node. Set its size to match your video's size in pixels." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:99 +msgid "Create a VideoPlayer node *as a child of the Viewport node* and specify a video path in it. Make sure **Expand** is disabled, and enable **Autoplay** if needed." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:101 +msgid "Create a MeshInstance node with a PlaneMesh or QuadMesh resource in its Mesh property. Resize the mesh to match the video's aspect ratio (otherwise, it will appear distorted)." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:103 +msgid "Create a new SpatialMaterial resource in the **Material Override** property in the GeometryInstance section." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:105 +msgid "Enable **Local To Scene** in the SpatialMaterial's Resource section (at the bottom). This is *required* before you can use a ViewportTexture in its Albedo Texture property." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:107 +msgid "In the SpatialMaterial, set the **Albedo > Texture** property to **New ViewportTexture**. Edit the new resource by clicking it, then specify the path to the Viewport node in the **Viewport Path** property." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:110 +msgid "Enable **Albedo Tex Force sRGB** in the SpatialMaterial to prevent colors from being washed out." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:112 +msgid "If the billboard is supposed to emit its own light, enable **Flags > Unshaded** to improve rendering performance." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:115 +msgid "See :ref:`doc_viewports` and the `GUI in 3D demo `__ for more information on setting this up." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:120 +msgid "Video decoding conditions and recommended resolutions" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:122 +msgid "Video decoding is performed on the CPU, as GPUs don't have hardware acceleration for decoding Theora videos. Modern desktop CPUs can decode Ogg Theora videos at 1440p @ 60 FPS or more, but low-end mobile CPUs will likely struggle with high-resolution videos." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:127 +msgid "To ensure your videos decode smoothly on varied hardware:" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:129 +msgid "When developing games for desktop platforms, it's recommended to encode in 1080p at most (preferably at 30 FPS). Most people are still using 1080p or lower resolution displays, so encoding higher-resolution videos may not be worth the increased file size and CPU requirements." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:133 +msgid "When developing games for mobile or web platforms, it's recommended to encode in 720p at most (preferably at 30 FPS or even lower). The visual difference between 720p and 1080p videos on a mobile device is usually not that noticeable." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:139 +msgid "Playback limitations" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:141 +msgid "There are several limitations with the current implementation of video playback in Godot:" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:143 +msgid "Seeking a video to a certain point is not supported." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:144 +msgid "Changing playback speed is not supported. VideoPlayer also won't follow :ref:`Engine.time_scale`." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:146 +msgid "Looping is not supported, but you can connect a VideoPlayer's :ref:`finished ` signal to a function that plays the video again. However, this will cause a black frame to be visible when the video restarts. This can be worked around by adding a fade to black in the video file before the video ends, or by hiding the video for one frame and displaying a TextureRect with a screenshot of the first frame of the video until the video is restarted." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:153 +msgid "Streaming a video from a URL is not supported." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:158 +msgid "Recommended Theora encoding settings" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:160 +msgid "A word of advice is to **avoid relying on built-in Ogg Theora exporters** (most of the time). There are 2 reasons you may want to favor using an external program to encode your video:" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:163 +msgid "Some programs such as Blender can render to Ogg Theora. However, the default quality presets are usually very low by today's standards. You may be able to increase the quality options in the software you're using, but you may find the output quality to remain less than ideal (given the increased file size). This usually means that the software only supports encoding to constant bit rate (CBR), instead of variable bit rate (VBR). VBR encoding should be preferred in most scenarios as it provides a better quality to file size ratio." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:171 +msgid "Some other programs can't render to Ogg Theora at all." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:173 +msgid "In this case, you can **render the video to an intermediate high-quality format** (such as a high-bitrate H.264 video) then re-encode it to Ogg Theora. Ideally, you should use a lossless or uncompressed format as an intermediate format to maximize the quality of the output Ogg Theora video, but this can require a lot of disk space." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:179 +msgid "`HandBrake `__ (GUI) and `FFmpeg `__ (CLI) are popular open source tools for this purpose. FFmpeg has a steeper learning curve, but it's more powerful." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:183 +msgid "Here are example FFmpeg commands to convert a MP4 video to Ogg Theora. Since FFmpeg supports a lot of input formats, you should be able to use the commands below with almost any input video format (AVI, MOV, WebM, …)." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:189 +msgid "Make sure your copy of FFmpeg is compiled with libtheora and libvorbis support. You can check this by running ``ffmpeg`` without any arguments, then looking at the ``configuration:`` line in the command output." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:194 +msgid "Balancing quality and file size" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:196 +msgid "The **video quality** level (``-q:v``) must be between ``1`` and ``10``. Quality ``6`` is a good compromise between quality and file size. If encoding at a high resolution (such as 1440p or 4K), you will probably want to decrease ``-q:v`` to ``5`` to keep file sizes reasonable. Since pixel density is higher on a 1440p or 4K video, lower quality presets at higher resolutions will look as good or better compared to low-resolution videos." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:203 +msgid "The **audio quality** level (``-q:a``) must be between ``-1`` and ``10``. Quality ``6`` provides a good compromise between quality and file size. In contrast to video quality, increasing audio quality doesn't increase the output file size nearly as much. Therefore, if you want the cleanest audio possible, you can increase this to ``9`` to get *perceptually lossless* audio. This is especially valuable if your input file already uses lossy audio compression. See `this page `__ for a table listing Ogg Vorbis audio quality presets and their respective variable bitrates." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:214 +msgid "FFmpeg: Convert while preserving original video resolution" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:216 +msgid "The following command converts the video while keeping its original resolution. The video and audio's bitrate will be variable to maximize quality while saving space in parts of the video/audio that don't require a high bitrate (such as static scenes)." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:226 +msgid "FFmpeg: Resize the video then convert it" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:228 +msgid "The following command resizes a video to be 720 pixels tall (720p), while preserving its existing aspect ratio. This helps decrease the file size significantly if the source is recorded at a higher resolution than 720p:" +msgstr "" + +#: ../../docs/:0 +msgid "Translation status" +msgstr "" diff --git a/sphinx/templates/tutorials/assets_pipeline/escn_exporter/animation.pot b/sphinx/templates/tutorials/assets_pipeline/escn_exporter/animation.pot index d70a996dc6..150c45927e 100644 --- a/sphinx/templates/tutorials/assets_pipeline/escn_exporter/animation.pot +++ b/sphinx/templates/tutorials/assets_pipeline/escn_exporter/animation.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/assets_pipeline/escn_exporter/index.pot b/sphinx/templates/tutorials/assets_pipeline/escn_exporter/index.pot index 21999ac017..7bbfd8741b 100644 --- a/sphinx/templates/tutorials/assets_pipeline/escn_exporter/index.pot +++ b/sphinx/templates/tutorials/assets_pipeline/escn_exporter/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/assets_pipeline/escn_exporter/lights.pot b/sphinx/templates/tutorials/assets_pipeline/escn_exporter/lights.pot index b6f38d6b53..a3a9f916c4 100644 --- a/sphinx/templates/tutorials/assets_pipeline/escn_exporter/lights.pot +++ b/sphinx/templates/tutorials/assets_pipeline/escn_exporter/lights.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/assets_pipeline/escn_exporter/material.pot b/sphinx/templates/tutorials/assets_pipeline/escn_exporter/material.pot index 164fc30012..88ee62af8d 100644 --- a/sphinx/templates/tutorials/assets_pipeline/escn_exporter/material.pot +++ b/sphinx/templates/tutorials/assets_pipeline/escn_exporter/material.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/assets_pipeline/escn_exporter/mesh.pot b/sphinx/templates/tutorials/assets_pipeline/escn_exporter/mesh.pot index 8069c32005..5a1b15d967 100644 --- a/sphinx/templates/tutorials/assets_pipeline/escn_exporter/mesh.pot +++ b/sphinx/templates/tutorials/assets_pipeline/escn_exporter/mesh.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/assets_pipeline/escn_exporter/physics.pot b/sphinx/templates/tutorials/assets_pipeline/escn_exporter/physics.pot index e62c295ba0..1a0e0c064f 100644 --- a/sphinx/templates/tutorials/assets_pipeline/escn_exporter/physics.pot +++ b/sphinx/templates/tutorials/assets_pipeline/escn_exporter/physics.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/assets_pipeline/escn_exporter/skeleton.pot b/sphinx/templates/tutorials/assets_pipeline/escn_exporter/skeleton.pot index 443a1d165f..1b9f170f11 100644 --- a/sphinx/templates/tutorials/assets_pipeline/escn_exporter/skeleton.pot +++ b/sphinx/templates/tutorials/assets_pipeline/escn_exporter/skeleton.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/assets_pipeline/exporting_3d_scenes.pot b/sphinx/templates/tutorials/assets_pipeline/exporting_3d_scenes.pot index 4b21f67b40..39960de306 100644 --- a/sphinx/templates/tutorials/assets_pipeline/exporting_3d_scenes.pot +++ b/sphinx/templates/tutorials/assets_pipeline/exporting_3d_scenes.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/assets_pipeline/import_process.pot b/sphinx/templates/tutorials/assets_pipeline/import_process.pot index b9e470dbd4..d5ae720119 100644 --- a/sphinx/templates/tutorials/assets_pipeline/import_process.pot +++ b/sphinx/templates/tutorials/assets_pipeline/import_process.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/assets_pipeline/importing_audio_samples.pot b/sphinx/templates/tutorials/assets_pipeline/importing_audio_samples.pot index 24de5e3ecf..c5a7fb3a2e 100644 --- a/sphinx/templates/tutorials/assets_pipeline/importing_audio_samples.pot +++ b/sphinx/templates/tutorials/assets_pipeline/importing_audio_samples.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/assets_pipeline/importing_images.pot b/sphinx/templates/tutorials/assets_pipeline/importing_images.pot index 0691e5c8a8..b368b98efd 100644 --- a/sphinx/templates/tutorials/assets_pipeline/importing_images.pot +++ b/sphinx/templates/tutorials/assets_pipeline/importing_images.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/assets_pipeline/importing_scenes.pot b/sphinx/templates/tutorials/assets_pipeline/importing_scenes.pot index 9ccb98a027..8b801b8540 100644 --- a/sphinx/templates/tutorials/assets_pipeline/importing_scenes.pot +++ b/sphinx/templates/tutorials/assets_pipeline/importing_scenes.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -93,565 +93,569 @@ msgid "There are two reasons to use glTF with the textures separate. One is to h msgstr "" #: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:57 -msgid "Blender does not export emissive textures with the glTF file. If your model uses one, it must be brought in separately." +msgid "Blend shape animations cannot be imported - they require manual animation within Godot." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:60 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:61 +msgid "Blender versions older than 3.2 do not export emissive textures with the glTF file. If your model uses one and you're using an older version of Blender, it must be brought in separately." +msgstr "" + +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:65 msgid "By default, Blender has backface culling disabled on materials and will export materials to match how they render in Blender. This means that materials in Godot will have their cull mode set to **Disabled**. This can decrease performance since backfaces will be rendered, even when they are being culled by other faces. To resolve this, enable **Backface Culling** in Blender's Materials tab, then export the scene to glTF again." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:68 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:73 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:70 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:75 msgid "Blender has built-in COLLADA support, but it does not work properly for the needs of game engines and should not be used as is." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:73 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:78 msgid "Godot provides a `Blender plugin `_ that will correctly export COLLADA scenes for use in Godot. It does not work in Blender 2.8 or newer, but there are plans to update it in the future." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:78 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:83 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:80 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:85 msgid "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind of another name for a .tscn file (Godot scene file); it keeps as much information as possible from a Blender scene. However, it is considered experimental." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:86 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:91 msgid "The ESCN exporter has a detailed `document `__ describing its functionality and usage." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:90 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:95 msgid "Exporting textures separately" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:92 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:97 msgid "While textures can be exported with a model in certain file formats, such as glTF 2.0, you can also export them separately. Godot uses PBR (physically based rendering) for its materials, so if a texturing program can export PBR textures, they can work in Godot. This includes the `Substance suite `__, `ArmorPaint (open source) `__, and `Material Maker (open source) `__." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:97 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:102 msgid "For more information on Godot's materials, see :ref:`doc_spatial_material`." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:100 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:105 msgid "Exporting considerations" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:102 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:107 msgid "Since GPUs can only render triangles, meshes that contain quads or N-gons have to be *triangulated* before they can be rendered. Godot can triangulate meshes on import, but results may be unpredictable or incorrect, especially with N-gons. Regardless of the target application, triangulating *before* exporting the scene will lead to more consistent results and should be done whenever possible." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:109 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:114 msgid "To avoid issues with incorrect triangulation after importing in Godot, it is recommended to make the 3D DCC triangulate objects on its own. In Blender, this can be done by adding a Triangulate modifier to your objects and making sure **Apply Modifiers** is checked in the export dialog. Alternatively, depending on the exporter, you may be able to find and enable a **Triangulate Faces** option in the export dialog." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:116 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:121 msgid "To avoid issues with 3D selection in the editor, it is recommended to apply the object transform in the 3D DCC before exporting the scene." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:120 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:125 msgid "Import workflows" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:122 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:127 msgid "Godot scene importer allows different workflows regarding how data is imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:125 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:130 msgid "External materials (default): Where each material is saved to a file resource. Modifications to them are kept." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:126 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:131 msgid "External meshes: Where each mesh is saved to a different file. Many users prefer to deal with meshes directly." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:127 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:132 msgid "External animations: Allowing saved animations to be modified and merged when sources change." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:128 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:133 msgid "External scenes: Save each of the root nodes of the imported scenes as a separate scene." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:129 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:134 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:133 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:138 msgid "As different developers have different needs, this import process is highly customizable." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:136 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:141 msgid "Import options" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:138 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:143 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:143 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:148 msgid "Nodes" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:146 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:151 msgid "Root Type" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:148 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:153 msgid "By default, the type of the root node in imported scenes is \"Spatial\", but this can be modified." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:151 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:156 msgid "Root Name" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:153 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:158 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:156 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:161 msgid "Root Scale" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:158 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:163 msgid "The scale of the root node." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:161 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:166 msgid "Custom Script" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:163 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:168 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 etc." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:167 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:172 msgid "Create a script like this:" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:179 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:184 msgid "The ``post_import`` 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. It can be a different one." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:184 -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:203 -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:268 -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:366 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:189 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:208 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:273 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:371 msgid "Storage" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:186 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:191 msgid "By default, Godot imports a single scene. This option allows specifying that nodes below the root will each be a separate scene and instanced into the imported one." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:190 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:195 msgid "Of course, instancing such imported scenes in other places manually works, too." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:194 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:199 msgid "Materials" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:197 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:202 msgid "Location" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:199 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:204 msgid "Godot supports materials in meshes or nodes. By default, materials will be put on each node." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:205 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:210 msgid "Materials can be stored within the scene or in external files. By default, they are stored in external files so editing them is possible. This is because most 3D DCCs don't have the same material options as those present in Godot." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:209 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:214 msgid "When materials are built-in, they will be lost each time the source scene is modified and re-imported." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:214 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:219 msgid "Godot will not reimport materials that are stored in external files unless you remove the associated ``.material`` file before reimporting." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:217 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:222 msgid "To force reimporting materials every time the 3D scene is reimported, change the material storage mode in the 3D scene by selecting it in the FileSystem dock, going to the Import dock then setting **Material > Storage** to **Built-In** instead of **Files**." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:223 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:228 msgid "Keep On Reimport" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:225 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:230 msgid "Once materials are edited to use Godot features, the importer will keep the edited ones and ignore the ones coming from the source scene. This option is only present if materials are saved as files." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:230 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:235 msgid "Meshes" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:233 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:238 msgid "Compress" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:235 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:240 msgid "Makes meshes use less precise numbers for multiple aspects of the mesh in order to save space." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:248 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:253 msgid "These are:" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:239 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:244 msgid "Transform Matrix (Location, rotation, and scale) : 32-bit float to 16-bit signed integer." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:240 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:245 msgid "Vertices : 32-bit float to 16-bit signed integer." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:241 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:246 msgid "Normals : 32-bit float to 32-bit unsigned integer." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:242 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:247 msgid "Tangents : 32-bit float to 32-bit unsigned integer." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:243 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:248 msgid "Vertex Colors : 32-bit float to 32-bit unsigned integer." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:244 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:249 msgid "UV : 32-bit float to 32-bit unsigned integer." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:245 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:250 msgid "UV2 : 32-bit float to 32-bit unsigned integer." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:246 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:251 msgid "Vertex weights : 32-bit float to 16-bit unsigned integer." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:247 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:252 msgid "Armature bones : 32-bit float to 16-bit unsigned integer." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:248 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:253 msgid "Array index : 32-bit or 16-bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:252 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:257 msgid "Additional info:" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:251 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:256 msgid "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:252 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:257 msgid "Array index = An array of numbers that number each element of the arrays above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:254 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:259 msgid "In some cases, this might lead to loss of precision, so disabling this option may be needed. For instance, if a mesh is very big or there are multiple meshes being imported that cover a large area, compressing the import of this mesh(es) may lead to gaps in geometry or vertices not being exactly where they should be." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:260 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:265 msgid "Ensure Tangents" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:262 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:267 msgid "If textures with normal mapping are to be used, meshes need to have tangent arrays. This option ensures that these are generated if not present in the source scene. Godot uses `Mikktspace `__ for this, but it's always better to have them generated in the exporter." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:270 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:275 msgid "Meshes can be stored in separate files (resources) instead of built-in. This does not have much practical use unless one wants to build objects with them directly." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:273 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:278 msgid "This option is provided to help those who prefer working directly with meshes instead of scenes." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:277 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:282 msgid "Light Baking" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:279 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:284 msgid "Whether or not the mesh is used in baked lightmaps." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:281 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:286 msgid "**Disabled:** The mesh is not used in baked lightmaps." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:282 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:287 msgid "**Enable:** The mesh is used in baked lightmaps." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:283 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:288 msgid "**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second UV layer for lightmaps." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:285 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:290 msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:288 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:293 msgid "External Files" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:290 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:295 msgid "Generated meshes and materials can be optionally stored in a subdirectory with the name of the scene." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:294 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:299 msgid "Animation options" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:296 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:301 msgid "Godot provides many options regarding how animation data is dealt with. Some exporters (such as Blender) can generate many animations in a single file. Others, such as 3DS Max or Maya, need many animations put into the same timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:303 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:308 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:307 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:312 msgid "To modify animations from an imported 3D scene, you need to change the animation storage option from **Built-In** to **Files** in the Import dock. Otherwise, changes made to animations from Godot will be lost when the project is run." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:312 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:317 msgid "FPS" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:314 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:319 msgid "Most 3D export formats store animation timeline in seconds instead of frames. To ensure animations are imported as faithfully as possible, please specify the frames per second used to edit them. Failing to do this may result in shaky animations." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:319 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:324 msgid "Filter Script" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:321 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:326 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_scenes.rst:324 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:329 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, using ``?`` and ``*`` wildcards (using ``String.matchn()`` under the hood)." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:330 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:335 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_scenes.rst:336 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:341 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_scenes.rst:342 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:347 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_scenes.rst:346 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:351 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_scenes.rst:351 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.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_scenes.rst:360 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:365 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_scenes.rst:363 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:368 msgid "Any track filter lines that do not begin with a ``+`` or ``-`` are ignored." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:368 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:373 msgid "By default, animations are saved as built-in. It is possible to save them to a file instead. This allows adding custom tracks to the animations and keeping them after a reimport." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:372 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:377 msgid "Optimizer" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:374 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:379 msgid "When animations are imported, an optimizer is run, which reduces the size of the animation considerably. In general, this should always be turned on unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:378 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:383 msgid "Clips" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:380 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:385 msgid "It is possible to specify multiple animations from a single timeline as clips. For this to work, the model must have only one animation that is named ``default``. To create clips, change the clip amount to something greater than zero. You can then name a clip, specify which frames it starts and stops on, and choose whether the animation loops or not." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:389 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:394 msgid "Scene inheritance" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:391 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:396 msgid "In many cases, it may be desired to make modifications to the imported scene. By default, this is not possible because if the source asset changes (source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:394 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:399 msgid "It is possible, however, to make local modifications by using *Scene Inheritance*. Try to open the imported scene and the following dialog will appear:" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:399 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:404 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:401 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:406 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:402 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:407 msgid "Sub-Resources can't be edited (save them externally as described above for this)" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:404 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:409 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:409 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:414 msgid "Import hints" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:411 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:416 msgid "Many times, when editing a scene, there are common tasks that need to be done after exporting:" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:413 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:418 msgid "Adding collision detection to objects." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:414 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:419 msgid "Setting objects as navigation meshes." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:415 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:420 msgid "Deleting nodes that are not used in the game engine (like specific lights used for modelling)." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:417 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:422 msgid "To simplify this workflow, Godot offers several suffixes that can be added to the names of the objects in your 3D modelling software. When imported, Godot will detect suffixes in object names and will perform actions automatically." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:423 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:428 msgid "All the suffixes described below are *case-sensitive*." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:426 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:431 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:428 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:433 msgid "Objects that have the ``-noimp`` suffix will be removed at import-time no matter what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:432 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:437 msgid "Create collisions (-col, -convcol, -colonly, -convcolonly)" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:434 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:439 msgid "The option ``-col`` will work only for Mesh objects. If it is detected, a child static collision node will be added, using the same geometry as the mesh. This will create a triangle mesh collision shape, which is a slow, but accurate option for collision detection. This option is usually what you want for level geometry (but see also ``-colonly`` below)." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:440 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:445 msgid "The option ``-convcol`` will create a :ref:`class_convexpolygonshape` instead of a :ref:`class_concavepolygonshape`. Unlike triangle meshes which can be concave, a convex shape can only accurately represent a shape that doesn't have any concave angles (a pyramid is convex, but a hollow box is concave). Due to this, convex collision shapes are generally not suited for level geometry. When representing simple enough meshes, convex collision shapes can result in better performance compared to a triangle collision shape. This option is ideal for simple or dynamic objects that require mostly-accurate collision detection." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:449 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:454 msgid "However, in both cases, the visual geometry may be too complex or not smooth enough for collisions. This can create physics glitches and slow down the engine unnecessarily." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:453 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:458 msgid "To solve this, the ``-colonly`` modifier exists. It will remove the mesh upon importing and will create a :ref:`class_staticbody` collision instead. This helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:457 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:462 msgid "The option ``-convcolonly`` works in a similar way, but will create a :ref:`class_convexpolygonshape` instead." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:459 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:464 msgid "The option ``-colonly`` can also be used with Blender's empty objects. On import, it will create a :ref:`class_staticbody` with a collision node as a child. The collision node will have one of a number of predefined shapes, depending on Blender's empty draw type:" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:466 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:471 msgid "Single arrow will create a :ref:`class_rayshape`." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:467 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:472 msgid "Cube will create a :ref:`class_boxshape`." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:468 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:473 msgid "Image will create a :ref:`class_planeshape`." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:469 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:474 msgid "Sphere (and the others not listed) will create a :ref:`class_sphereshape`." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:471 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:476 msgid "When possible, **try to use a few primitive collision shapes** instead of triangle mesh or convex shapes. Primitive shapes often have the best performance and reliability." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:477 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:482 msgid "For better visibility in Blender's editor, you can set the \"X-Ray\" option on collision empties and set some distinct color for them in Blender's **User Preferences > Themes > 3D View > Empty**." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:483 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:488 msgid "See :ref:`doc_collision_shapes_3d` for a comprehensive overview of collision shapes." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:487 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:492 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:489 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:494 msgid "A mesh node with the ``-navmesh`` suffix will be converted to a navigation mesh. The original Mesh object will be removed at import-time." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:493 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:498 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:495 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:500 msgid "A mesh node with the ``-vehicle`` suffix will be imported as a child to a :ref:`class_VehicleBody` node." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:499 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:504 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:501 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:506 msgid "A mesh node with the ``-wheel`` suffix will be imported as a child to a :ref:`class_VehicleWheel` node." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:505 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:510 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:507 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:512 msgid "A mesh node with the ``-rigid`` suffix will be imported as a :ref:`class_RigidBody`." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:510 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:515 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:512 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:517 msgid "Animation clips in the COLLADA document that start or end with the token ``loop`` or ``cycle`` will be imported as a Godot Animation with the loop flag set. **Unlike the other suffixes described above, this does not require a hyphen.**" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:516 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:521 msgid "In Blender, this requires using the NLA Editor and naming the Action with the ``loop`` or ``cycle`` prefix or suffix." msgstr "" diff --git a/sphinx/templates/tutorials/assets_pipeline/importing_translations.pot b/sphinx/templates/tutorials/assets_pipeline/importing_translations.pot index 2fd7c2b424..cc7b11a703 100644 --- a/sphinx/templates/tutorials/assets_pipeline/importing_translations.pot +++ b/sphinx/templates/tutorials/assets_pipeline/importing_translations.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/assets_pipeline/index.pot b/sphinx/templates/tutorials/assets_pipeline/index.pot index 443d42f88e..9161543b80 100644 --- a/sphinx/templates/tutorials/assets_pipeline/index.pot +++ b/sphinx/templates/tutorials/assets_pipeline/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/audio/audio_buses.pot b/sphinx/templates/tutorials/audio/audio_buses.pot index 31f5faff97..e65fafc603 100644 --- a/sphinx/templates/tutorials/audio/audio_buses.pot +++ b/sphinx/templates/tutorials/audio/audio_buses.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/audio/audio_streams.pot b/sphinx/templates/tutorials/audio/audio_streams.pot index b3f0542a79..a2e9791757 100644 --- a/sphinx/templates/tutorials/audio/audio_streams.pot +++ b/sphinx/templates/tutorials/audio/audio_streams.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/audio/index.pot b/sphinx/templates/tutorials/audio/index.pot index 7c4d8383f0..e2de6ed03e 100644 --- a/sphinx/templates/tutorials/audio/index.pot +++ b/sphinx/templates/tutorials/audio/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/audio/recording_with_microphone.pot b/sphinx/templates/tutorials/audio/recording_with_microphone.pot index da1e573a99..fee2b517a8 100644 --- a/sphinx/templates/tutorials/audio/recording_with_microphone.pot +++ b/sphinx/templates/tutorials/audio/recording_with_microphone.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -28,35 +28,39 @@ msgstr "" msgid "A simple demo is included in the official demo projects and will be used as support for this tutorial: ``_." msgstr "" -#: ../../docs/tutorials/audio/recording_with_microphone.rst:14 -msgid "The structure of the demo" +#: ../../docs/tutorials/audio/recording_with_microphone.rst:13 +msgid "You will need to enable audio input in the project settings, or you'll just get empty audio files." msgstr "" #: ../../docs/tutorials/audio/recording_with_microphone.rst:16 +msgid "The structure of the demo" +msgstr "" + +#: ../../docs/tutorials/audio/recording_with_microphone.rst:18 msgid "The demo consists of a single scene. This scene includes two major parts: the GUI and the audio." msgstr "" -#: ../../docs/tutorials/audio/recording_with_microphone.rst:19 +#: ../../docs/tutorials/audio/recording_with_microphone.rst:21 msgid "We will focus on the audio part. In this demo, a bus named ``Record`` with the effect ``Record`` is created to handle the audio recording. An ``AudioStreamPlayer`` named ``AudioStreamRecord`` is used for recording." msgstr "" -#: ../../docs/tutorials/audio/recording_with_microphone.rst:55 +#: ../../docs/tutorials/audio/recording_with_microphone.rst:57 msgid "The audio recording is handled by the :ref:`class_AudioEffectRecord` resource which has three methods: :ref:`get_recording() `, :ref:`is_recording_active() `, and :ref:`set_recording_active() `." msgstr "" -#: ../../docs/tutorials/audio/recording_with_microphone.rst:102 +#: ../../docs/tutorials/audio/recording_with_microphone.rst:104 msgid "At the start of the demo, the recording effect is not active. When the user presses the ``RecordButton``, the effect is enabled with ``set_recording_active(true)``." msgstr "" -#: ../../docs/tutorials/audio/recording_with_microphone.rst:106 +#: ../../docs/tutorials/audio/recording_with_microphone.rst:108 msgid "On the next button press, as ``effect.is_recording_active()`` is ``true``, the recorded stream can be stored into the ``recording`` variable by calling ``effect.get_recording()``." msgstr "" -#: ../../docs/tutorials/audio/recording_with_microphone.rst:140 +#: ../../docs/tutorials/audio/recording_with_microphone.rst:142 msgid "To playback the recording, you assign the recording as the stream of the ``AudioStreamPlayer`` and call ``play()``." msgstr "" -#: ../../docs/tutorials/audio/recording_with_microphone.rst:160 +#: ../../docs/tutorials/audio/recording_with_microphone.rst:162 msgid "To save the recording, you call ``save_to_wav()`` with the path to a file. In this demo, the path is defined by the user via a ``LineEdit`` input box." msgstr "" diff --git a/sphinx/templates/tutorials/audio/sync_with_audio.pot b/sphinx/templates/tutorials/audio/sync_with_audio.pot index e3100aa92d..01ad259fc3 100644 --- a/sphinx/templates/tutorials/audio/sync_with_audio.pot +++ b/sphinx/templates/tutorials/audio/sync_with_audio.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/best_practices/autoloads_versus_internal_nodes.pot b/sphinx/templates/tutorials/best_practices/autoloads_versus_internal_nodes.pot index c89c5ab3b1..21bd2b69cd 100644 --- a/sphinx/templates/tutorials/best_practices/autoloads_versus_internal_nodes.pot +++ b/sphinx/templates/tutorials/best_practices/autoloads_versus_internal_nodes.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/best_practices/data_preferences.pot b/sphinx/templates/tutorials/best_practices/data_preferences.pot index 9902747c22..fecb335256 100644 --- a/sphinx/templates/tutorials/best_practices/data_preferences.pot +++ b/sphinx/templates/tutorials/best_practices/data_preferences.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/best_practices/godot_interfaces.pot b/sphinx/templates/tutorials/best_practices/godot_interfaces.pot index ed58e6ca09..cee7d5dd9d 100644 --- a/sphinx/templates/tutorials/best_practices/godot_interfaces.pot +++ b/sphinx/templates/tutorials/best_practices/godot_interfaces.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/best_practices/godot_notifications.pot b/sphinx/templates/tutorials/best_practices/godot_notifications.pot index 03c6f2e2d7..128948f6ad 100644 --- a/sphinx/templates/tutorials/best_practices/godot_notifications.pot +++ b/sphinx/templates/tutorials/best_practices/godot_notifications.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/best_practices/index.pot b/sphinx/templates/tutorials/best_practices/index.pot index 60e6d46d29..82f96d4012 100644 --- a/sphinx/templates/tutorials/best_practices/index.pot +++ b/sphinx/templates/tutorials/best_practices/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/best_practices/introduction_best_practices.pot b/sphinx/templates/tutorials/best_practices/introduction_best_practices.pot index 27333a67de..300a2a3a5f 100644 --- a/sphinx/templates/tutorials/best_practices/introduction_best_practices.pot +++ b/sphinx/templates/tutorials/best_practices/introduction_best_practices.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/best_practices/logic_preferences.pot b/sphinx/templates/tutorials/best_practices/logic_preferences.pot index 3115f58379..22c7a6a0bb 100644 --- a/sphinx/templates/tutorials/best_practices/logic_preferences.pot +++ b/sphinx/templates/tutorials/best_practices/logic_preferences.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/best_practices/node_alternatives.pot b/sphinx/templates/tutorials/best_practices/node_alternatives.pot index 1df0712fc3..11502c1199 100644 --- a/sphinx/templates/tutorials/best_practices/node_alternatives.pot +++ b/sphinx/templates/tutorials/best_practices/node_alternatives.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/best_practices/project_organization.pot b/sphinx/templates/tutorials/best_practices/project_organization.pot index 12c604ee4f..9e508dd403 100644 --- a/sphinx/templates/tutorials/best_practices/project_organization.pot +++ b/sphinx/templates/tutorials/best_practices/project_organization.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/best_practices/scene_organization.pot b/sphinx/templates/tutorials/best_practices/scene_organization.pot index cb05be4950..3901b557f6 100644 --- a/sphinx/templates/tutorials/best_practices/scene_organization.pot +++ b/sphinx/templates/tutorials/best_practices/scene_organization.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/best_practices/scenes_versus_scripts.pot b/sphinx/templates/tutorials/best_practices/scenes_versus_scripts.pot index 7598aa1abc..8470e34759 100644 --- a/sphinx/templates/tutorials/best_practices/scenes_versus_scripts.pot +++ b/sphinx/templates/tutorials/best_practices/scenes_versus_scripts.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/best_practices/version_control_systems.pot b/sphinx/templates/tutorials/best_practices/version_control_systems.pot index 4297b981ed..0c3d470416 100644 --- a/sphinx/templates/tutorials/best_practices/version_control_systems.pot +++ b/sphinx/templates/tutorials/best_practices/version_control_systems.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/best_practices/what_are_godot_classes.pot b/sphinx/templates/tutorials/best_practices/what_are_godot_classes.pot index b11df23201..e54f262cd3 100644 --- a/sphinx/templates/tutorials/best_practices/what_are_godot_classes.pot +++ b/sphinx/templates/tutorials/best_practices/what_are_godot_classes.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/editor/command_line_tutorial.pot b/sphinx/templates/tutorials/editor/command_line_tutorial.pot index 3d03ef9286..98205bf1f4 100644 --- a/sphinx/templates/tutorials/editor/command_line_tutorial.pot +++ b/sphinx/templates/tutorials/editor/command_line_tutorial.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/editor/default_key_mapping.pot b/sphinx/templates/tutorials/editor/default_key_mapping.pot index 9a34bba740..c3a26a56e7 100644 --- a/sphinx/templates/tutorials/editor/default_key_mapping.pot +++ b/sphinx/templates/tutorials/editor/default_key_mapping.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/editor/external_editor.pot b/sphinx/templates/tutorials/editor/external_editor.pot index 4093083feb..de95be5a77 100644 --- a/sphinx/templates/tutorials/editor/external_editor.pot +++ b/sphinx/templates/tutorials/editor/external_editor.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -105,7 +105,7 @@ msgid "JetBrains Rider" msgstr "" #: ../../docs/tutorials/editor/external_editor.rst:40 -msgid "``--line {line} {file}``" +msgid "``{project} --line {line} {file}``" msgstr "" #: ../../docs/tutorials/editor/external_editor.rst:42 diff --git a/sphinx/templates/tutorials/editor/index.pot b/sphinx/templates/tutorials/editor/index.pot index 007ddbdb78..29bf10bfe2 100644 --- a/sphinx/templates/tutorials/editor/index.pot +++ b/sphinx/templates/tutorials/editor/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/editor/managing_editor_features.pot b/sphinx/templates/tutorials/editor/managing_editor_features.pot index 88588a1529..17d610d42c 100644 --- a/sphinx/templates/tutorials/editor/managing_editor_features.pot +++ b/sphinx/templates/tutorials/editor/managing_editor_features.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/editor/using_the_web_editor.pot b/sphinx/templates/tutorials/editor/using_the_web_editor.pot index b04316831a..38c4731d68 100644 --- a/sphinx/templates/tutorials/editor/using_the_web_editor.pot +++ b/sphinx/templates/tutorials/editor/using_the_web_editor.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/export/android_custom_build.pot b/sphinx/templates/tutorials/export/android_custom_build.pot index edd51d5b02..6d10b30be0 100644 --- a/sphinx/templates/tutorials/export/android_custom_build.pot +++ b/sphinx/templates/tutorials/export/android_custom_build.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/export/changing_application_icon_for_windows.pot b/sphinx/templates/tutorials/export/changing_application_icon_for_windows.pot index 2ec1bacff3..f881bdf4d4 100644 --- a/sphinx/templates/tutorials/export/changing_application_icon_for_windows.pot +++ b/sphinx/templates/tutorials/export/changing_application_icon_for_windows.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -72,47 +72,51 @@ msgstr "" msgid "Changing the file icon" msgstr "" -#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:66 -msgid "There are `known issues `__ when changing the application icon in executables that embed a PCK file. It's recommended to avoid using rcedit for now if you choose to enable the **Embed Pck** option for your Windows export preset in the Export dialog." +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:64 +msgid "In Godot 3.5 and later, you can change the file icon without external tools using `godoticon `__. Changing the file icon this way should work for executables containing an embedded PCK." msgstr "" #: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:71 -msgid "The file icon is the icon of the executable that you click on to start the project." +msgid "There are `known issues `__ when changing the application icon in executables that embed a PCK file. It's recommended to avoid using rcedit for now if you choose to enable the **Embed Pck** option for your Windows export preset in the Export dialog." msgstr "" #: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:76 +msgid "The file icon is the icon of the executable that you click on to start the project." +msgstr "" + +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:81 msgid "Before selecting it in the export options, you will need to install an extra tool called **rcedit**. You can download it `here `_." msgstr "" -#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:80 +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:85 msgid "After downloading, you need to tell Godot the path to the rcedit executable on your computer. Go to **Editor → Editor Settings → Export → Windows**. Click on the folder icon for the **rcedit** entry. Navigate to and select the rcedit executable." msgstr "" -#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:88 +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:93 msgid "Linux and macOS users will also need to install `WINE `_ to use rcedit." msgstr "" -#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:93 +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:98 msgid "You should now have everything in place to change the file icon. To do that, you will need to specify the icon when exporting. Go to **Project → Export**. Assuming you have already created a Windows Desktop preset, select your icon in ICO format in the **Application → Icon** field." msgstr "" -#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:103 +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:108 msgid "If rcedit fails to change the icon, you can instead :ref:`compile your own Windows export templates ` with the icon changed. To do so, replace `platform/windows/godot.ico `__ with your own ICO file *before* compiling export templates." msgstr "" -#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:109 +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:114 msgid "Once this is done, you can specify your export templates as custom export templates in your project's Windows export preset." msgstr "" -#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:113 +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:118 msgid "Testing the result" msgstr "" -#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:115 +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:120 msgid "You can now export the project. If it worked correctly, you should see this:" msgstr "" -#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:121 +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:126 msgid "If your icon isn't showing up properly, on Windows 10, try clearing the icon cache. To do so, open the **Run** dialog and enter ``ie4uinit.exe -ClearIconCache`` or ``ie4uinit.exe -show``." msgstr "" diff --git a/sphinx/templates/tutorials/export/exporting_basics.pot b/sphinx/templates/tutorials/export/exporting_basics.pot index 9d54501ef8..8a6ffa716d 100644 --- a/sphinx/templates/tutorials/export/exporting_basics.pot +++ b/sphinx/templates/tutorials/export/exporting_basics.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/export/exporting_for_android.pot b/sphinx/templates/tutorials/export/exporting_for_android.pot index a0b85ffcf0..a45409c549 100644 --- a/sphinx/templates/tutorials/export/exporting_for_android.pot +++ b/sphinx/templates/tutorials/export/exporting_for_android.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -29,230 +29,230 @@ msgid "Exporting for Android has fewer requirements than compiling Godot for And msgstr "" #: ../../docs/tutorials/export/exporting_for_android.rst:17 -msgid "Download the Android SDK" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_android.rst:19 -msgid "Download and install the Android SDK." -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_android.rst:21 -msgid "You can install it using `Android Studio version 4.1 or later `__." -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_android.rst:23 -msgid "Run it once to complete the SDK setup using these `instructions `__." -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_android.rst:24 -msgid "Ensure that the `required packages `__ are installed as well." -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_android.rst:26 -msgid "Android SDK Platform-Tools version 30.0.5 or later" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_android.rst:27 -msgid "Android SDK Build-Tools version 30.0.3" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_android.rst:28 -msgid "Android SDK Platform 29" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_android.rst:29 -msgid "Android SDK Command-line Tools (latest)" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_android.rst:30 -msgid "CMake version 3.10.2.4988404" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_android.rst:31 -msgid "NDK version 21.4.7075529" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_android.rst:33 -msgid "You can install it using the `command line tools `__." -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_android.rst:35 -msgid "Once the command line tools are installed, run the `sdkmanager `__ command to complete the setup process:" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_android.rst:43 -msgid "If you are using Linux, **do not use an Android SDK provided by your distribution's repositories as it will often be outdated**." -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_android.rst:47 msgid "Install OpenJDK 11" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:49 +#: ../../docs/tutorials/export/exporting_for_android.rst:19 msgid "Download and install `OpenJDK 11 `__." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:52 +#: ../../docs/tutorials/export/exporting_for_android.rst:22 +msgid "Download the Android SDK" +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_android.rst:24 +msgid "Download and install the Android SDK." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_android.rst:26 +msgid "You can install it using `Android Studio version 4.1 or later `__." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_android.rst:28 +msgid "Run it once to complete the SDK setup using these `instructions `__." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_android.rst:29 +msgid "Ensure that the `required packages `__ are installed as well." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_android.rst:31 +msgid "Android SDK Platform-Tools version 30.0.5 or later" +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_android.rst:32 +msgid "Android SDK Build-Tools version 30.0.3" +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_android.rst:33 +msgid "Android SDK Platform 31" +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_android.rst:34 +msgid "Android SDK Command-line Tools (latest)" +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_android.rst:35 +msgid "CMake version 3.10.2.4988404" +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_android.rst:36 +msgid "NDK version r23c (23.2.8568313)" +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_android.rst:38 +msgid "You can install it using the `command line tools `__." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_android.rst:40 +msgid "Once the command line tools are installed, run the `sdkmanager `__ command to complete the setup process:" +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_android.rst:48 +msgid "If you are using Linux, **do not use an Android SDK provided by your distribution's repositories as it will often be outdated**." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_android.rst:53 msgid "Create a debug.keystore" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:54 +#: ../../docs/tutorials/export/exporting_for_android.rst:55 msgid "Android needs a debug keystore file to install to devices and distribute non-release APKs. If you have used the SDK before and have built projects, ant or eclipse probably generated one for you (in the ``~/.android`` directory on Linux and macOS, in the ``C:\\Users\\\\.android\\`` directory on Windows)." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:59 +#: ../../docs/tutorials/export/exporting_for_android.rst:60 msgid "If you can't find it or need to generate one, the keytool command from the JDK can be used for this purpose::" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:64 +#: ../../docs/tutorials/export/exporting_for_android.rst:65 msgid "This will create a ``debug.keystore`` file in your current directory. You should move it to a memorable location such as ``%USERPROFILE%\\.android\\``, because you will need its location in a later step. For more information on ``keytool`` usage, see `this Q&A article `__." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:67 +#: ../../docs/tutorials/export/exporting_for_android.rst:68 msgid "Setting it up in Godot" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:69 +#: ../../docs/tutorials/export/exporting_for_android.rst:70 msgid "Enter the Editor Settings screen. This screen contains the editor settings for the user account in the computer (it's independent of the project)." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:75 +#: ../../docs/tutorials/export/exporting_for_android.rst:76 msgid "Scroll down to the section where the Android settings are located:" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:79 +#: ../../docs/tutorials/export/exporting_for_android.rst:80 msgid "In that screen, 2 paths need to be set:" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:81 +#: ../../docs/tutorials/export/exporting_for_android.rst:82 msgid "The ``Android Sdk Path`` should be the location where the Android SDK was installed. - For example ``%LOCALAPPDATA%\\Android\\Sdk\\`` on Windows or ``/Users/$USER/Library/Android/sdk/`` on macOS." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:84 +#: ../../docs/tutorials/export/exporting_for_android.rst:85 msgid "The debug ``.keystore`` file - It can be found in the folder where you put the ``debug.keystore`` file you created above." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:87 +#: ../../docs/tutorials/export/exporting_for_android.rst:88 msgid "Once that is configured, everything is ready to export to Android!" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:91 +#: ../../docs/tutorials/export/exporting_for_android.rst:92 msgid "If you get an error saying *\"Could not install to device.\"*, make sure you do not have an application with the same Android package name already installed on the device (but signed with a different key)." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:95 +#: ../../docs/tutorials/export/exporting_for_android.rst:96 msgid "If you have an application with the same Android package name but a different signing key already installed on the device, you **must** remove the application in question from the Android device before exporting to Android again." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:101 +#: ../../docs/tutorials/export/exporting_for_android.rst:102 msgid "Providing launcher icons" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:103 +#: ../../docs/tutorials/export/exporting_for_android.rst:104 msgid "Launcher icons are used by Android launcher apps to represent your application to users. Godot only requires high-resolution icons (for ``xxxhdpi`` density screens) and will automatically generate lower-resolution variants." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:105 +#: ../../docs/tutorials/export/exporting_for_android.rst:106 msgid "There are two types of icons required by Godot:" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:107 +#: ../../docs/tutorials/export/exporting_for_android.rst:108 msgid "**Main Icon:** The \"classic\" icon. This will be used on all Android versions up to Android 8 (Oreo), exclusive. Must be at least 192×192 px." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:108 +#: ../../docs/tutorials/export/exporting_for_android.rst:109 msgid "**Adaptive Icons:** Starting from Android 8 (inclusive), `Adaptive Icons `_ were introduced. Applications will need to include separate background and foreground icons to have a native look. The user's launcher application will control the icon's animation and masking. Must be at least 432×432 px." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:110 +#: ../../docs/tutorials/export/exporting_for_android.rst:111 msgid "It's important to adhere to some rules when designing adaptive icons. `Google Design has provided a nice article `_ that helps to understand those rules and some of the capabilities of adaptive icons." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:112 +#: ../../docs/tutorials/export/exporting_for_android.rst:113 msgid "The most important adaptive icon design rule is to have your icon critical elements inside the safe zone: a centered circle with a diameter of 66dp (264 pixels on ``xxxhdpi``) to avoid being clipped by the launcher." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:114 +#: ../../docs/tutorials/export/exporting_for_android.rst:115 msgid "If you don't provide some of the requested icons, Godot will replace them using a fallback chain, trying the next in line when the current one fails:" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:116 +#: ../../docs/tutorials/export/exporting_for_android.rst:117 msgid "**Main Icon:** Provided main icon -> Project icon -> Default Godot main icon." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:117 +#: ../../docs/tutorials/export/exporting_for_android.rst:118 msgid "**Adaptive Icon Foreground:** Provided foreground icon -> Provided main icon -> Project icon -> Default Godot foreground icon." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:118 +#: ../../docs/tutorials/export/exporting_for_android.rst:119 msgid "**Adaptive Icon Background:** Provided background icon -> Default Godot background icon." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:120 +#: ../../docs/tutorials/export/exporting_for_android.rst:121 msgid "It's highly recommended to provide all the requested icons with their specified resolutions. This way, your application will look great on all Android devices and versions." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:124 +#: ../../docs/tutorials/export/exporting_for_android.rst:125 msgid "Exporting for Google Play Store" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:126 +#: ../../docs/tutorials/export/exporting_for_android.rst:127 msgid "Uploading an APK to Google's Play Store requires you to sign using a non-debug keystore file; such file can be generated like this:" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:133 +#: ../../docs/tutorials/export/exporting_for_android.rst:134 msgid "This keystore and key are used to verify your developer identity, remember the password and keep it in a safe place! Use Google's Android Developer guides to learn more about `APK signing `__." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:136 +#: ../../docs/tutorials/export/exporting_for_android.rst:137 msgid "Now fill in the following forms in your Android Export Presets:" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:140 +#: ../../docs/tutorials/export/exporting_for_android.rst:141 msgid "**Release:** Enter the path to the keystore file you just generated." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:141 +#: ../../docs/tutorials/export/exporting_for_android.rst:142 msgid "**Release User:** Replace with the key alias." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:142 +#: ../../docs/tutorials/export/exporting_for_android.rst:143 msgid "**Release Password:** Key password. Note that the keystore password and the key password currently have to be the same." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:144 +#: ../../docs/tutorials/export/exporting_for_android.rst:145 msgid "**Your export_presets.cfg file now contains sensitive information.** If you use a version control system, you should remove it from public repositories and add it to your ``.gitignore`` file or equivalent." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:148 +#: ../../docs/tutorials/export/exporting_for_android.rst:149 msgid "Don't forget to uncheck the **Export With Debug** checkbox while exporting." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:153 +#: ../../docs/tutorials/export/exporting_for_android.rst:154 msgid "Optimizing the APK size" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:155 +#: ../../docs/tutorials/export/exporting_for_android.rst:156 msgid "By default, the APK will contain native libraries for both ARMv7 and ARMv8 architectures. This increases its size significantly. To create a smaller APK, uncheck either **Armeabi-v 7a** or **Arm 64 -v 8a** in your project's Android export preset. This will create an APK that only contains a library for a single architecture. Note that applications targeting ARMv7 can also run on ARMv8 devices, but the opposite is not true." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:162 +#: ../../docs/tutorials/export/exporting_for_android.rst:163 msgid "Since August 2019, Google Play requires all applications to be available in 64-bit form. This means you cannot upload an APK that contains *just* an ARMv7 library. To solve this, you can upload several APKs to Google Play using its `Multiple APK support `__. Each APK should target a single architecture; creating an APK for ARMv7 and ARMv8 is usually sufficient to cover most devices in use today." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:169 +#: ../../docs/tutorials/export/exporting_for_android.rst:170 msgid "You can optimize the size further by compiling an Android export template with only the features you need. See :ref:`doc_optimizing_for_size` for more information." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:174 +#: ../../docs/tutorials/export/exporting_for_android.rst:175 msgid "Troubleshooting rendering issues" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:176 +#: ../../docs/tutorials/export/exporting_for_android.rst:177 msgid "To improve out-of-the-box performance on mobile devices, Godot automatically uses low-end-friendly settings by default on both Android and iOS." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:179 +#: ../../docs/tutorials/export/exporting_for_android.rst:180 msgid "This can cause rendering issues that do not occur when running the project on a desktop platform. See :ref:`doc_mobile_rendering_limitations` for more information." msgstr "" diff --git a/sphinx/templates/tutorials/export/exporting_for_dedicated_servers.pot b/sphinx/templates/tutorials/export/exporting_for_dedicated_servers.pot index 55ce062eb5..7730f6cbd7 100644 --- a/sphinx/templates/tutorials/export/exporting_for_dedicated_servers.pot +++ b/sphinx/templates/tutorials/export/exporting_for_dedicated_servers.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/export/exporting_for_ios.pot b/sphinx/templates/tutorials/export/exporting_for_ios.pot index 3bb6bcd0b0..300f587802 100644 --- a/sphinx/templates/tutorials/export/exporting_for_ios.pot +++ b/sphinx/templates/tutorials/export/exporting_for_ios.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -49,130 +49,114 @@ msgid "In the Godot editor, open the **Export** window from the **Project** menu msgstr "" #: ../../docs/tutorials/export/exporting_for_ios.rst:28 -msgid "The following export options are required. Leaving any blank will cause the exporter to throw an error:" +msgid "The **App Store Team ID** and (Bundle) **Identifier** options in the **Application** category are required. Leaving them blank will cause the exporter to throw an error." msgstr "" #: ../../docs/tutorials/export/exporting_for_ios.rst:31 -msgid "In the **Application** category * **App Store Team ID** and (Bundle) **Identifier**" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_ios.rst:33 -msgid "Everything in the **Required Icons** category" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_ios.rst:34 -msgid "Everything in the **Landscape Launch Screens** category" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_ios.rst:35 -msgid "Everything in the **Portrait Launch Screens** category" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_ios.rst:37 msgid "After you click **Export Project**, there are still two important options left:" msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:39 +#: ../../docs/tutorials/export/exporting_for_ios.rst:33 msgid "**Path** is an empty folder that will contain the exported Xcode project files." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:40 +#: ../../docs/tutorials/export/exporting_for_ios.rst:34 msgid "**File** will be the name of the Xcode project and several project specific files and directories." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:44 +#: ../../docs/tutorials/export/exporting_for_ios.rst:38 msgid "This tutorial uses **exported_xcode_project_name**, but you will use your project's name. When you see **exported_xcode_project_name** in the following steps, replace it with the name you used instead." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:48 +#: ../../docs/tutorials/export/exporting_for_ios.rst:42 msgid "Avoid using spaces when you choose your **exported_xcode_project_name** as this can lead to corruption in your XCode project file." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:51 +#: ../../docs/tutorials/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:55 +#: ../../docs/tutorials/export/exporting_for_ios.rst:49 msgid "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy like any other iOS app." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:59 +#: ../../docs/tutorials/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:61 +#: ../../docs/tutorials/export/exporting_for_ios.rst:55 msgid "The above method creates an exported project that you can build for release, but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:64 +#: ../../docs/tutorials/export/exporting_for_ios.rst:58 msgid "While developing, you can speed this process up by linking your Godot project files directly into your app." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:67 +#: ../../docs/tutorials/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:69 +#: ../../docs/tutorials/export/exporting_for_ios.rst:63 msgid "**exported_xcode_project_name** is the name of the exported iOS application (as above)." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:70 +#: ../../docs/tutorials/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:72 +#: ../../docs/tutorials/export/exporting_for_ios.rst:66 msgid "**godot_project_to_export** must not be the same as **exported_xcode_project_name** to prevent signing issues in Xcode." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:76 +#: ../../docs/tutorials/export/exporting_for_ios.rst:70 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:78 +#: ../../docs/tutorials/export/exporting_for_ios.rst:72 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:79 +#: ../../docs/tutorials/export/exporting_for_ios.rst:73 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:83 +#: ../../docs/tutorials/export/exporting_for_ios.rst:77 msgid "3. In the dialog, make sure **Create folder references** is selected. This means you will be able to continue to edit your Godot project in its current location." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:88 +#: ../../docs/tutorials/export/exporting_for_ios.rst:82 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:89 +#: ../../docs/tutorials/export/exporting_for_ios.rst:83 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:93 +#: ../../docs/tutorials/export/exporting_for_ios.rst:87 msgid "6. Open **exported_xcode_project_name-Info.plist** and add a string property named **godot_path** (this is the real key name) with a value **godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:99 +#: ../../docs/tutorials/export/exporting_for_ios.rst:93 msgid "That's it! You can now edit your project in the Godot editor and build it in Xcode when you want to run it on a device." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:103 +#: ../../docs/tutorials/export/exporting_for_ios.rst:97 msgid "Plugins for iOS" msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:105 +#: ../../docs/tutorials/export/exporting_for_ios.rst:99 msgid "Special iOS plugins can be used in Godot. Check out the :ref:`doc_plugins_for_ios` page." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:109 +#: ../../docs/tutorials/export/exporting_for_ios.rst:103 msgid "Troubleshooting rendering issues" msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:111 +#: ../../docs/tutorials/export/exporting_for_ios.rst:105 msgid "To improve out-of-the-box performance on mobile devices, Godot automatically uses low-end-friendly settings by default on both Android and iOS." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:114 +#: ../../docs/tutorials/export/exporting_for_ios.rst:108 msgid "This can cause rendering issues that do not occur when running the project on a desktop platform. See :ref:`doc_mobile_rendering_limitations` for more information." msgstr "" diff --git a/sphinx/templates/tutorials/export/exporting_for_linux.pot b/sphinx/templates/tutorials/export/exporting_for_linux.pot index d8b89ed3c5..036cb3164f 100644 --- a/sphinx/templates/tutorials/export/exporting_for_linux.pot +++ b/sphinx/templates/tutorials/export/exporting_for_linux.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/export/exporting_for_macos.pot b/sphinx/templates/tutorials/export/exporting_for_macos.pot index fb709a4a04..06495f6b8f 100644 --- a/sphinx/templates/tutorials/export/exporting_for_macos.pot +++ b/sphinx/templates/tutorials/export/exporting_for_macos.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -25,7 +25,7 @@ msgid "This page describes how to export a Godot project to macOS. If you're loo msgstr "" #: ../../docs/tutorials/export/exporting_for_macos.rst:12 -msgid "macOS apps are exported as an ``.app`` bundle, a folder with a specific structure which stores the executable, libraries and all the project files. This bundle is packed in a ZIP archive or DMG disk image (only supported when exporting for macOS)." +msgid "macOS apps are exported as an ``.app`` bundle, a folder with a specific structure which stores the executable, libraries and all the project files. This bundle can be exported as is, packed in a ZIP archive or DMG disk image (only supported when exporting from a computer running macOS)." msgstr "" #: ../../docs/tutorials/export/exporting_for_macos.rst:16 @@ -33,396 +33,420 @@ msgid "Requirements" msgstr "" #: ../../docs/tutorials/export/exporting_for_macos.rst:18 -msgid "To enable code signing and notarization, you must export from a computer running macOS with Xcode command line tools installed." +msgid "To enable code signing with Apple Developer ID and notarization, you must export from a computer running macOS with Xcode command line tools installed." msgstr "" #: ../../docs/tutorials/export/exporting_for_macos.rst:19 +msgid "Ad-hoc code signing is supported on all platforms, without additional tools." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:20 msgid "Download the Godot export templates. Use the Godot menu: ``Editor > Manage Export Templates``." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:23 +#: ../../docs/tutorials/export/exporting_for_macos.rst:21 +msgid "A valid and unique ``Bundle identifier`` should be set in the ``Application`` section of the export options." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:25 msgid "Projects exported without code signing and notarization will be blocked by Gatekeeper if they are downloaded from unknown sources, see the :ref:`Running Godot apps on macOS ` page for more information." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:26 +#: ../../docs/tutorials/export/exporting_for_macos.rst:28 msgid "Code signing and notarization" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:28 -msgid "By default, macOS will run only applications that are signed and notarized, if you use any other signing configuration see :ref:`Running Godot apps on macOS ` for workarounds." -msgstr "" - #: ../../docs/tutorials/export/exporting_for_macos.rst:30 -msgid "To notarize an app you mast have a valid `Apple Developer ID Certificate `__." +msgid "By default, macOS will run only applications that are signed and notarized. If you use any other signing configuration, see :ref:`Running Godot apps on macOS ` for workarounds." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:33 -msgid "If you have an Apple Developer ID Certificate" +#: ../../docs/tutorials/export/exporting_for_macos.rst:32 +msgid "To notarize an app, you **must** have a valid `Apple Developer ID Certificate `__." msgstr "" #: ../../docs/tutorials/export/exporting_for_macos.rst:35 -msgid "Enable ``Code Signing``, ``Notarization``, ``Hardened Runtime`` and ``Timestamp`` and disable the ``Debug`` entitlement." +msgid "If you have an Apple Developer ID Certificate" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:36 -msgid "Provide valid Apple ID credentials and certificate identity." +#: ../../docs/tutorials/export/exporting_for_macos.rst:37 +msgid "Export your project from a computer running macOS with Xcode command line tools installed." msgstr "" #: ../../docs/tutorials/export/exporting_for_macos.rst:38 +msgid "Enable ``Code Signing``, ``Notarization``, ``Hardened Runtime`` and ``Timestamp`` and disable the ``Debug`` entitlement." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:39 +msgid "Provide valid Apple ID credentials and certificate identity." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:41 msgid "If ``Notarization`` is enabled, Godot will automatically upload the exported project for notarization." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:40 +#: ../../docs/tutorials/export/exporting_for_macos.rst:43 msgid "You can use the ``xcrun notarytool history`` command to check notarization status and use the ``xcrun notarytool log {ID}`` command to download the notarization log." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:42 +#: ../../docs/tutorials/export/exporting_for_macos.rst:45 msgid "If you encounter notarization issues, see `Resolving common notarization issues `__ for more info." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:44 +#: ../../docs/tutorials/export/exporting_for_macos.rst:47 msgid "After notarization is completed, `staple the ticket `__ to the exported project." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:47 +#: ../../docs/tutorials/export/exporting_for_macos.rst:50 msgid "If you do not have an Apple Developer ID Certificate" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:49 -msgid "Keep ``Code Signing`` enabled and leave the ``Identity`` option empty, in this case Godot will use a ad-hoc signature, which will make running an exported app easier for the end users." +#: ../../docs/tutorials/export/exporting_for_macos.rst:52 +msgid "Keep ``Code Signing`` enabled and leave the ``Identity`` option empty (when exporting from a computer running macOS, on other platforms this option is hidden). In this case Godot will use a ad-hoc signature, which will make running an exported app easier for the end users, see the :ref:`Running Godot apps on macOS ` page for more information." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:52 +#: ../../docs/tutorials/export/exporting_for_macos.rst:56 msgid "Signing Options" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:55 -#: ../../docs/tutorials/export/exporting_for_macos.rst:78 +#: ../../docs/tutorials/export/exporting_for_macos.rst:59 +#: ../../docs/tutorials/export/exporting_for_macos.rst:85 msgid "Option" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:55 -#: ../../docs/tutorials/export/exporting_for_macos.rst:78 -#: ../../docs/tutorials/export/exporting_for_macos.rst:101 -#: ../../docs/tutorials/export/exporting_for_macos.rst:144 +#: ../../docs/tutorials/export/exporting_for_macos.rst:59 +#: ../../docs/tutorials/export/exporting_for_macos.rst:85 +#: ../../docs/tutorials/export/exporting_for_macos.rst:112 +#: ../../docs/tutorials/export/exporting_for_macos.rst:155 msgid "Description" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:57 -#: ../../docs/tutorials/export/exporting_for_macos.rst:80 +#: ../../docs/tutorials/export/exporting_for_macos.rst:61 +#: ../../docs/tutorials/export/exporting_for_macos.rst:87 msgid "Enable" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:57 +#: ../../docs/tutorials/export/exporting_for_macos.rst:61 msgid "Enables code signing." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:59 +#: ../../docs/tutorials/export/exporting_for_macos.rst:63 msgid "Identity" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:59 -msgid "The \"Full Name\" or \"Common Name\" of the signing identity, store in the macOS key chain. [1]_" +#: ../../docs/tutorials/export/exporting_for_macos.rst:63 +msgid "The \"Full Name\" or \"Common Name\" of the signing identity, store in the macOS keychain. [1]_ [2]_" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:61 +#: ../../docs/tutorials/export/exporting_for_macos.rst:65 msgid "Timestamp" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:61 -msgid "Requests a timestamp server to authenticate the time of signing. Required for notarization." +#: ../../docs/tutorials/export/exporting_for_macos.rst:65 +msgid "Requests a timestamp server to authenticate the time of signing. Required for notarization. [2]_" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:63 +#: ../../docs/tutorials/export/exporting_for_macos.rst:67 msgid "Hardened Runtime" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:63 -msgid "Enables \"Hardened Runtime\". Required for notarization." +#: ../../docs/tutorials/export/exporting_for_macos.rst:67 +msgid "Enables \"Hardened Runtime\". Required for notarization. [2]_" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:65 +#: ../../docs/tutorials/export/exporting_for_macos.rst:69 msgid "Replace Existing Signature" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:65 +#: ../../docs/tutorials/export/exporting_for_macos.rst:69 msgid "Replaces existing signatures of the GDNative libraries and embedded helper executables." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:70 +#: ../../docs/tutorials/export/exporting_for_macos.rst:74 msgid "To notarize an app, you must enable the ``Hardened Runtime`` and ``Timestamp``." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:72 +#: ../../docs/tutorials/export/exporting_for_macos.rst:76 +msgid "The ``Hardened Runtime`` and ``Timestamp`` options are incompatible with ad-hoc signing and will be ignored." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:78 msgid "Leave ``Identity`` option empty to use ad-hoc signature." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:75 +#: ../../docs/tutorials/export/exporting_for_macos.rst:79 +msgid "This option is visible only when exporting from a computer running macOS." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:82 msgid "Notarization Options" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:80 +#: ../../docs/tutorials/export/exporting_for_macos.rst:87 msgid "Enables automatic upload for notarization." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:82 +#: ../../docs/tutorials/export/exporting_for_macos.rst:89 msgid "Apple ID Name" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:82 +#: ../../docs/tutorials/export/exporting_for_macos.rst:89 msgid "Apple ID account name (email address)" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:84 +#: ../../docs/tutorials/export/exporting_for_macos.rst:91 msgid "Apple ID Password" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:84 +#: ../../docs/tutorials/export/exporting_for_macos.rst:91 msgid "Apple ID app-specific password. See `Using app-specific passwords `__ to enable two-factor authentication and create app password." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:86 +#: ../../docs/tutorials/export/exporting_for_macos.rst:93 msgid "Apple Team ID" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:86 -msgid "Team ID if your Apple ID belongs to multiple teams" +#: ../../docs/tutorials/export/exporting_for_macos.rst:93 +msgid "Team ID, if your Apple ID belongs to multiple teams" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:89 +#: ../../docs/tutorials/export/exporting_for_macos.rst:96 msgid "See `Notarizing macOS Software Before Distribution `__ for more info." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:92 +#: ../../docs/tutorials/export/exporting_for_macos.rst:100 +msgid "Notarization is supported when exporting from a computer running macOS, these options are hidden on other platforms." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:103 msgid "Entitlements" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:95 +#: ../../docs/tutorials/export/exporting_for_macos.rst:106 msgid "Hardened Runtime Entitlements" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:97 +#: ../../docs/tutorials/export/exporting_for_macos.rst:108 msgid "Hardened Runtime entitlements manage security options and resource access policy. See `Hardened Runtime `__ for more info." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:101 -#: ../../docs/tutorials/export/exporting_for_macos.rst:144 +#: ../../docs/tutorials/export/exporting_for_macos.rst:112 +#: ../../docs/tutorials/export/exporting_for_macos.rst:155 msgid "Entitlement" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:103 -msgid "Allow JIT Code Execution [2]_" +#: ../../docs/tutorials/export/exporting_for_macos.rst:114 +msgid "Allow JIT Code Execution [3]_" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:103 +#: ../../docs/tutorials/export/exporting_for_macos.rst:114 msgid "Allows creating writable and executable memory for JIT code. If you are using add-ons with dynamic or self-modifying native code, enable them according to the add-on documentation." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:105 -msgid "Allow Unsigned Executable Memory [2]_" +#: ../../docs/tutorials/export/exporting_for_macos.rst:116 +msgid "Allow Unsigned Executable Memory [3]_" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:105 +#: ../../docs/tutorials/export/exporting_for_macos.rst:116 msgid "Allows creating writable and executable memory without JIT restrictions. If you are using add-ons with dynamic or self-modifying native code, enable them according to the add-on documentation." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:107 -msgid "Allow DYLD Environment Variables [2]_" +#: ../../docs/tutorials/export/exporting_for_macos.rst:118 +msgid "Allow DYLD Environment Variables [3]_" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:107 +#: ../../docs/tutorials/export/exporting_for_macos.rst:118 msgid "Allows app to uss dynamic linker environment variables to inject code. f you are using add-ons with dynamic or self-modifying native code, enable them according to the add-on documentation." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:109 +#: ../../docs/tutorials/export/exporting_for_macos.rst:120 msgid "Disable Library Validation" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:109 +#: ../../docs/tutorials/export/exporting_for_macos.rst:120 msgid "Allows app to load arbitrary libraries and frameworks. Enabled it if you are using GDNative add-ons and ad-hoc signature, or want to support user-provided external add-ons." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:111 +#: ../../docs/tutorials/export/exporting_for_macos.rst:122 msgid "Audio Input" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:111 +#: ../../docs/tutorials/export/exporting_for_macos.rst:122 msgid "Enable if you need to use the microphone or other audio input sources, if it's enabled you should also provide usage message in the `privacy/microphone_usage_description` option." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:113 +#: ../../docs/tutorials/export/exporting_for_macos.rst:124 msgid "Camera" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:113 +#: ../../docs/tutorials/export/exporting_for_macos.rst:124 msgid "Enable if you need to use the camera, if it's enabled you should also provide usage message in the `privacy/camera_usage_description` option." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:115 +#: ../../docs/tutorials/export/exporting_for_macos.rst:126 msgid "Location" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:115 +#: ../../docs/tutorials/export/exporting_for_macos.rst:126 msgid "Enable if you need to use location information from Location Services, if it's enabled you should also provide usage message in the `privacy/location_usage_description` option." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:117 +#: ../../docs/tutorials/export/exporting_for_macos.rst:128 msgid "Address Book" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:117 -msgid "[3]_ Enable to allow access contacts in the user's address book, if it's enabled you should also provide usage message in the `privacy/address_book_usage_description` option." -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_macos.rst:119 -msgid "Calendars" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_macos.rst:119 -msgid "[3]_ Enable to allow access to the user's calendar, if it's enabled you should also provide usage message in the `privacy/calendar_usage_description` option." -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_macos.rst:121 -msgid "Photo Library" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_macos.rst:121 -msgid "[3]_ Enable to allow access to the user's Photos library, if it's enabled you should also provide usage message in the `privacy/photos_library_usage_description` option." -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_macos.rst:123 -msgid "Apple Events" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_macos.rst:123 -msgid "[3]_ Enable to allow app to send Apple events to other apps." -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_macos.rst:125 -msgid "Debugging" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_macos.rst:125 -msgid "[4]_ You can temporarily enable this entitlement to use native debugger (GDB, LLDB) with the exported app. This entitlement should be disabled for production export." -msgstr "" - #: ../../docs/tutorials/export/exporting_for_macos.rst:128 -msgid "The ``Allow JIT Code Execution``, ``Allow Unsigned Executable Memory`` and ``Allow DYLD Environment Variables`` entitlements are always enabled for the Godot Mono exports, and are not visible in the export options." -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_macos.rst:129 -msgid "These features aren't supported by Godot out of the box, enable them only if you are using add-ons which require them." +msgid "[4]_ Enable to allow access contacts in the user's address book, if it's enabled you should also provide usage message in the `privacy/address_book_usage_description` option." msgstr "" #: ../../docs/tutorials/export/exporting_for_macos.rst:130 -msgid "To notarize an app, you must disable the ``Debugging`` entitlement." +msgid "Calendars" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:133 -msgid "App Sandbox Entitlement" +#: ../../docs/tutorials/export/exporting_for_macos.rst:130 +msgid "[4]_ Enable to allow access to the user's calendar, if it's enabled you should also provide usage message in the `privacy/calendar_usage_description` option." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:135 -msgid "The App Sandbox restricts access to user data, networking and devices. Sandboxed apps can't access most of the file system, can't use custom file dialogs and execute binaries (using ``OS.execute`` and ``OS.create_process``) outside the ``.app`` bundle. See `App Sandbox `__ for more info." +#: ../../docs/tutorials/export/exporting_for_macos.rst:132 +msgid "Photo Library" +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:132 +msgid "[4]_ Enable to allow access to the user's Photos library, if it's enabled you should also provide usage message in the `privacy/photos_library_usage_description` option." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:134 +msgid "Apple Events" +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:134 +msgid "[4]_ Enable to allow app to send Apple events to other apps." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:136 +msgid "Debugging" +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:136 +msgid "[5]_ You can temporarily enable this entitlement to use native debugger (GDB, LLDB) with the exported app. This entitlement should be disabled for production export." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:139 +msgid "The ``Allow JIT Code Execution``, ``Allow Unsigned Executable Memory`` and ``Allow DYLD Environment Variables`` entitlements are always enabled for the Godot Mono exports, and are not visible in the export options." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:140 +msgid "These features aren't supported by Godot out of the box, enable them only if you are using add-ons which require them." msgstr "" #: ../../docs/tutorials/export/exporting_for_macos.rst:141 +msgid "To notarize an app, you must disable the ``Debugging`` entitlement." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:144 +msgid "App Sandbox Entitlement" +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:146 +msgid "The App Sandbox restricts access to user data, networking and devices. Sandboxed apps can't access most of the file system, can't use custom file dialogs and execute binaries (using ``OS.execute`` and ``OS.create_process``) outside the ``.app`` bundle. See `App Sandbox `__ for more info." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:152 msgid "To distribute an app through the App Store, you must enable the App Sandbox." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:146 +#: ../../docs/tutorials/export/exporting_for_macos.rst:157 msgid "Enabled" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:146 +#: ../../docs/tutorials/export/exporting_for_macos.rst:157 msgid "Enables App Sandbox." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:148 +#: ../../docs/tutorials/export/exporting_for_macos.rst:159 msgid "Network Server" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:148 +#: ../../docs/tutorials/export/exporting_for_macos.rst:159 msgid "Enable to allow app to listen for incoming network connections." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:150 +#: ../../docs/tutorials/export/exporting_for_macos.rst:161 msgid "Network Client" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:150 +#: ../../docs/tutorials/export/exporting_for_macos.rst:161 msgid "Enable to allow app to establish outgoing network connections." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:152 +#: ../../docs/tutorials/export/exporting_for_macos.rst:163 msgid "Device USB" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:152 +#: ../../docs/tutorials/export/exporting_for_macos.rst:163 msgid "Enable to allow app to interact with USB devices. This entitlement is required to use wired controllers." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:154 +#: ../../docs/tutorials/export/exporting_for_macos.rst:165 msgid "Device Bluetooth" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:154 +#: ../../docs/tutorials/export/exporting_for_macos.rst:165 msgid "Enable to allow app to interact with Bluetooth devices. This entitlement is required to use wireless controllers." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:156 -msgid "Files Downloads [5]_" +#: ../../docs/tutorials/export/exporting_for_macos.rst:167 +msgid "Files Downloads [6]_" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:156 +#: ../../docs/tutorials/export/exporting_for_macos.rst:167 msgid "Allows read or write access to the user's \"Downloads\" folder." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:158 -msgid "Files Pictures [5]_" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_macos.rst:158 -msgid "Allows read or write access to the user's \"Pictures\" folder." -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_macos.rst:160 -msgid "Files Music [5]_" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_macos.rst:160 -msgid "Allows read or write access to the user's \"Music\" folder." -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_macos.rst:162 -msgid "Files Movies [5]_" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_macos.rst:162 -msgid "Allows read or write access to the user's \"Movies\" folder." -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_macos.rst:164 -msgid "Files User Selected [5]_" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_macos.rst:164 -msgid "Allows read or write access to arbitrary folder. To gain access, a folder must be selected from the native file dialog by the user." -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_macos.rst:166 -msgid "Helper Executable" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_macos.rst:166 -msgid "List of helper executables to embedded to the app bundle. Sandboxed app are limited to execute only these executable." +#: ../../docs/tutorials/export/exporting_for_macos.rst:169 +msgid "Files Pictures [6]_" msgstr "" #: ../../docs/tutorials/export/exporting_for_macos.rst:169 -msgid "You can optionally provide usage messages for various folders in the `privacy/*_folder_usage_description` options." +msgid "Allows read or write access to the user's \"Pictures\" folder." msgstr "" #: ../../docs/tutorials/export/exporting_for_macos.rst:171 +msgid "Files Music [6]_" +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:171 +msgid "Allows read or write access to the user's \"Music\" folder." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:173 +msgid "Files Movies [6]_" +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:173 +msgid "Allows read or write access to the user's \"Movies\" folder." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:175 +msgid "Files User Selected [6]_" +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:175 +msgid "Allows read or write access to arbitrary folder. To gain access, a folder must be selected from the native file dialog by the user." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:177 +msgid "Helper Executable" +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:177 +msgid "List of helper executables to embedded to the app bundle. Sandboxed app are limited to execute only these executable." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:180 +msgid "You can optionally provide usage messages for various folders in the `privacy/*_folder_usage_description` options." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:182 msgid "You can override default entitlements by selecting custom entitlements file, in this case all other entitlement are ignored." msgstr "" diff --git a/sphinx/templates/tutorials/export/exporting_for_uwp.pot b/sphinx/templates/tutorials/export/exporting_for_uwp.pot index 62e745b50f..e0cd69a10f 100644 --- a/sphinx/templates/tutorials/export/exporting_for_uwp.pot +++ b/sphinx/templates/tutorials/export/exporting_for_uwp.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/export/exporting_for_web.pot b/sphinx/templates/tutorials/export/exporting_for_web.pot index f6fd09e6b2..f5e81e8746 100644 --- a/sphinx/templates/tutorials/export/exporting_for_web.pot +++ b/sphinx/templates/tutorials/export/exporting_for_web.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/export/exporting_for_windows.pot b/sphinx/templates/tutorials/export/exporting_for_windows.pot index 2e1df99ac5..89813ddb97 100644 --- a/sphinx/templates/tutorials/export/exporting_for_windows.pot +++ b/sphinx/templates/tutorials/export/exporting_for_windows.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/export/exporting_pcks.pot b/sphinx/templates/tutorials/export/exporting_pcks.pot index 624b7598e4..34c34bb9ca 100644 --- a/sphinx/templates/tutorials/export/exporting_pcks.pot +++ b/sphinx/templates/tutorials/export/exporting_pcks.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -149,7 +149,7 @@ msgid "The developer must publicize documentation of these expected structures/ msgstr "" #: ../../docs/tutorials/export/exporting_pcks.rst:80 -msgid "The developer uses Godot to build a GUI tool for adding their exact API content to a project. This Godot tool must either run on a tools-enabled build of the engine or have access to one (distributed alongside or perhaps in the original game's files). The tool can then use the Godot executable to export a PCK file from the command line with :ref:`OS.execute() `. It makes the most sense for the game to not use a tool-build though (for security) and for the modding tools to *do* use a tool-enabled engine build." +msgid "The developer uses Godot to build a GUI tool for adding their exact API content to a project. This Godot tool must either run on a tools-enabled build of the engine or have access to one (distributed alongside or perhaps in the original game's files). The tool can then use the Godot executable to export a PCK file from the command line with :ref:`OS.execute() `. The game itself shouldn't use a tool-build of the engine (for security), so it's best to keep the modding tool and game separate." msgstr "" #: ../../docs/tutorials/export/exporting_pcks.rst:90 diff --git a/sphinx/templates/tutorials/export/exporting_projects.pot b/sphinx/templates/tutorials/export/exporting_projects.pot index aa6e86e6c1..ea2e71ac5d 100644 --- a/sphinx/templates/tutorials/export/exporting_projects.pot +++ b/sphinx/templates/tutorials/export/exporting_projects.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/export/feature_tags.pot b/sphinx/templates/tutorials/export/feature_tags.pot index 31f1092674..fb93045959 100644 --- a/sphinx/templates/tutorials/export/feature_tags.pot +++ b/sphinx/templates/tutorials/export/feature_tags.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -284,47 +284,59 @@ msgstr "" msgid "Textures using PVRTC compression are supported" msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:90 +#: ../../docs/tutorials/export/feature_tags.rst:91 +msgid "With the exception of texture compression feature tags, default feature tags are **immutable**. This means that they will *not* change depending on run-time conditions. For example, ``OS.has_feature(\"mobile\")`` will return ``false`` when running a project exported to HTML5 on a mobile device." +msgstr "" + +#: ../../docs/tutorials/export/feature_tags.rst:96 +msgid "To check whether a project exported to HTML5 is running on a mobile device, :ref:`call JavaScript code ` that reads the browser's user agent." +msgstr "" + +#: ../../docs/tutorials/export/feature_tags.rst:101 msgid "Custom features" msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:92 +#: ../../docs/tutorials/export/feature_tags.rst:103 msgid "It is possible to add custom features to a build; use the relevant field in the *export preset* used to generate it:" msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:98 +#: ../../docs/tutorials/export/feature_tags.rst:110 +msgid "Custom feature tags are only used when running the exported project (including with :ref:`doc_one-click_deploy`). They are **not used** when running the project from the editor, even if the export preset marked as **Runnable** for your current platform has custom feature tags defined." +msgstr "" + +#: ../../docs/tutorials/export/feature_tags.rst:116 msgid "Overriding project settings" msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:100 +#: ../../docs/tutorials/export/feature_tags.rst:118 msgid "Features can be used to override specific configuration values in the *Project Settings*. This allows you to better customize any configuration when doing a build." msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:103 +#: ../../docs/tutorials/export/feature_tags.rst:121 msgid "In the following example, a different icon is added for the demo build of the game (which was customized in a special export preset, which, in turn, includes only demo levels)." msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:108 +#: ../../docs/tutorials/export/feature_tags.rst:126 msgid "After overriding, a new field is added for this specific configuration:" msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:114 +#: ../../docs/tutorials/export/feature_tags.rst:132 msgid "When using the :ref:`project settings \"override.cfg\" functionality ` (which is unrelated to feature tags), remember that feature tags still apply. Therefore, make sure to *also* override the setting with the desired feature tag(s) if you want them to override base project settings on all platforms and configurations." msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:122 +#: ../../docs/tutorials/export/feature_tags.rst:140 msgid "Default overrides" msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:124 +#: ../../docs/tutorials/export/feature_tags.rst:142 msgid "There are already a lot of settings that come with overrides by default; they can be found in many sections of the project settings." msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:130 +#: ../../docs/tutorials/export/feature_tags.rst:148 msgid "Customizing the build" msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:132 +#: ../../docs/tutorials/export/feature_tags.rst:150 msgid "Feature tags can be used to customize a build process too, by writing a custom **ExportPlugin**. They are also used to specify which shared library is loaded and exported in **GDNative**." msgstr "" diff --git a/sphinx/templates/tutorials/export/index.pot b/sphinx/templates/tutorials/export/index.pot index 98735ad608..1b2769bcf0 100644 --- a/sphinx/templates/tutorials/export/index.pot +++ b/sphinx/templates/tutorials/export/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/export/one-click_deploy.pot b/sphinx/templates/tutorials/export/one-click_deploy.pot index 25137854f8..dab0dd060a 100644 --- a/sphinx/templates/tutorials/export/one-click_deploy.pot +++ b/sphinx/templates/tutorials/export/one-click_deploy.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -88,6 +88,34 @@ msgstr "" msgid "Click the button to export to the desired platform in one click." msgstr "" +#: ../../docs/tutorials/export/one-click_deploy.rst:63 +msgid "Troubleshooting" +msgstr "" + +#: ../../docs/tutorials/export/one-click_deploy.rst:66 +msgid "Android" +msgstr "" + +#: ../../docs/tutorials/export/one-click_deploy.rst:68 +msgid "If you can't see the device in the list of devices when running the ``adb devices`` command in a terminal, it will not be visible by Godot either. To resolve this:" +msgstr "" + +#: ../../docs/tutorials/export/one-click_deploy.rst:72 +msgid "Check if USB debugging is enabled *and authorized on the device*. Try unlocking your device and accepting the authorization prompt if you see any. If you can't see this prompt, running ``adb devices`` on your PC should make the authorization prompt appear on the device." +msgstr "" + +#: ../../docs/tutorials/export/one-click_deploy.rst:76 +msgid "Try `revoking the debugging authorization `__ in the device's developer settings, then follow the steps again." +msgstr "" + +#: ../../docs/tutorials/export/one-click_deploy.rst:78 +msgid "Try using USB debugging instead of wireless debugging or vice versa. Sometimes, one of those can work better than the other." +msgstr "" + +#: ../../docs/tutorials/export/one-click_deploy.rst:80 +msgid "On Linux, you may be missing the required `udev rules `__ for your device to be recognized." +msgstr "" + #: ../../docs/:0 msgid "Translation status" msgstr "" diff --git a/sphinx/templates/tutorials/export/running_on_macos.pot b/sphinx/templates/tutorials/export/running_on_macos.pot index f2aee00081..3b535f62dc 100644 --- a/sphinx/templates/tutorials/export/running_on_macos.pot +++ b/sphinx/templates/tutorials/export/running_on_macos.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -131,7 +131,7 @@ msgid "Run the command ``xattr -dr com.apple.quarantine \"Unsigned Game.app\"`` msgstr "" #: ../../docs/tutorials/export/running_on_macos.rst:94 -msgid "Neither app not executable is signed (relevant for Apple Silicon macs only)" +msgid "Neither app nor executable is signed (relevant for Apple Silicon macs only)" msgstr "" #: ../../docs/tutorials/export/running_on_macos.rst:98 diff --git a/sphinx/templates/tutorials/i18n/index.pot b/sphinx/templates/tutorials/i18n/index.pot index c03a2f2322..468fbe61db 100644 --- a/sphinx/templates/tutorials/i18n/index.pot +++ b/sphinx/templates/tutorials/i18n/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/i18n/internationalizing_games.pot b/sphinx/templates/tutorials/i18n/internationalizing_games.pot index af69b9bb1a..787eb97d9c 100644 --- a/sphinx/templates/tutorials/i18n/internationalizing_games.pot +++ b/sphinx/templates/tutorials/i18n/internationalizing_games.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -108,10 +108,6 @@ msgstr "" msgid "First, in the Project Settings, under **Input Devices > Locale**, 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:120 -msgid "..image:: img/locale_test.png" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:122 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 "" diff --git a/sphinx/templates/tutorials/i18n/locales.pot b/sphinx/templates/tutorials/i18n/locales.pot index da12b48b7d..fac3213b8d 100644 --- a/sphinx/templates/tutorials/i18n/locales.pot +++ b/sphinx/templates/tutorials/i18n/locales.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/i18n/localization_using_gettext.pot b/sphinx/templates/tutorials/i18n/localization_using_gettext.pot index 3697a9dd28..c52e3f956c 100644 --- a/sphinx/templates/tutorials/i18n/localization_using_gettext.pot +++ b/sphinx/templates/tutorials/i18n/localization_using_gettext.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,7 +21,7 @@ msgid "Localization using gettext" msgstr "" #: ../../docs/tutorials/i18n/localization_using_gettext.rst:6 -msgid "In addition to :ref:`doc_importing_translations` in CSV format, Godot also supports loading translation files written in the GNU gettext (``.po``) format." +msgid "In addition to :ref:`doc_importing_translations` in CSV format, Godot also supports loading translation files written in the GNU gettext format (text-based ``.po`` and compiled ``.mo`` since Godot 3.5)." msgstr "" #: ../../docs/tutorials/i18n/localization_using_gettext.rst:10 @@ -57,141 +57,165 @@ msgid "gettext is a more complex format than CSV and can be harder to grasp for msgstr "" #: ../../docs/tutorials/i18n/localization_using_gettext.rst:33 -msgid "People who maintain localization files will have to install gettext tools on their system. However, as Godot doesn't use compiled message object files (``.mo``), translators can test their work without having to install gettext tools." +msgid "People who maintain localization files will have to install gettext tools on their system. However, as Godot supports using text-based message files (``.po``), translators can test their work without having to install gettext tools." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:39 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:38 msgid "Caveats" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:41 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:40 msgid "As Godot uses its own PO file parser behind the scenes (which is more limited than the reference GNU gettext implementation), some features such as pluralization aren't supported." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:46 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:45 msgid "Installing gettext tools" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:48 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:47 msgid "The command line gettext tools are required to perform maintenance operations, such as updating message files. Therefore, it's strongly recommended to install them." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:52 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:51 msgid "**Windows:** Download an installer from `this page `_. Any architecture and binary type (shared or static) works; if in doubt, choose the 64-bit static installer." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:56 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:55 msgid "**macOS:** Install gettext either using `Homebrew `_ with the ``brew install gettext`` command, or using `MacPorts `_ with the ``sudo port install gettext`` command." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:60 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:59 msgid "**Linux:** On most distributions, install the ``gettext`` package from your distribution's package manager." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:64 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:63 msgid "Creating the PO template (POT) manually" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:66 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:65 msgid "Godot currently doesn't support extracting source strings using ``xgettext``, so the ``.pot`` file must be created manually. This file can be placed anywhere in the project directory, but it's recommended to keep it in a subdirectory, as each locale will be defined in its own file." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:71 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:70 msgid "Create a directory named `locale` in the project directory. In this directory, save a file named ``messages.pot`` with the following contents:" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:83 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:82 msgid "Messages in gettext are made of ``msgid`` and ``msgstr`` pairs. ``msgid`` is the source string (usually in English), ``msgstr`` will be the translated string." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:87 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:86 msgid "The ``msgstr`` value in PO template files (``.pot``) should **always** be empty. Localization will be done in the generated ``.po`` files instead." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:91 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:90 msgid "Creating the PO template (POT) using pybabel" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:93 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:92 msgid "The Python tool pybabel has support for Godot and can be used to automatically create and update the POT file from your scene files and scripts." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:96 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:95 msgid "After installing ``babel`` and ``babel-godot``, for example using pip:" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:102 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:101 msgid "Write a mapping file (for example ``babelrc``) which will indicate which files pybabel needs to process (note that we process GDScript as Python, which is generally sufficient):" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:114 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:113 msgid "You can then run pybabel like so:" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:120 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:119 msgid "Use the ``-k`` option to specify what needs to be extracted. In this case, arguments to :ref:`tr() ` will be translated, as well as properties named \"text\" (commonly used by Control nodes) and LineEdit's \"placeholder_text\" property." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:126 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:125 msgid "Creating a messages file from a PO template" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:128 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:127 msgid "The ``msginit`` command is used to turn a PO template into a messages file. For instance, to create a French localization file, use the following command while in the ``locale`` directory:" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:136 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:135 msgid "The command above will create a file named ``fr.po`` in the same directory as the PO template." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:139 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:138 msgid "Alternatively, you can do that graphically using Poedit, or by uploading the POT file to your web platform of choice." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:143 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:142 msgid "Loading a messages file in Godot" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:145 -msgid "To register a messages file as a translation in a project, open the **Project Settings**, then go to the **Localization** tab. In **Translations**, click **Add…** then choose the ``.po`` file in the file dialog. The locale will be inferred from the ``\"Language: \\n\"`` property in the messages file." +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:144 +msgid "To register a messages file as a translation in a project, open the **Project Settings**, then go to the **Localization** tab. In **Translations**, click **Add…** then choose the ``.po`` or ``.mo`` file in the file dialog. The locale will be inferred from the ``\"Language: \\n\"`` property in the messages file." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:151 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:150 msgid "See :ref:`doc_internationalizing_games` for more information on importing and testing translations in Godot." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:155 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:154 msgid "Updating message files to follow the PO template" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:157 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:156 msgid "After updating the PO template, you will have to update message files so that they contain new strings, while removing strings that are no longer present in the PO template. This can be done automatically using the ``msgmerge`` tool:" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:167 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:166 msgid "If you want to keep a backup of the original message file (which would be saved as ``fr.po~`` in this example), remove the ``--backup=none`` argument." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:172 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:171 msgid "After running ``msgmerge``, strings which were modified in the source language will have a \"fuzzy\" comment added before them in the ``.po`` file. This comment denotes that the translation should be updated to match the new source string, as the translation will most likely be inaccurate until it's updated." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:177 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:176 msgid "Strings with \"fuzzy\" comments will **not** be read by Godot until the translation is updated and the \"fuzzy\" comment is removed." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:181 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:180 msgid "Checking the validity of a PO file or template" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:183 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:182 msgid "It is possible to check whether a gettext file's syntax is valid by running the command below:" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:190 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:189 msgid "If there are syntax errors or warnings, they will be displayed in the console. Otherwise, ``msgfmt`` won't output anything." msgstr "" +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:193 +msgid "Using binary MO files (useful for large projects only)" +msgstr "" + +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:195 +msgid "For large projects with several thousands of strings to translate or more, it can be worth it to use binary (compiled) MO message files instead of text-based PO files. Binary MO files are smaller and faster to read than the equivalent PO files." +msgstr "" + +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:200 +msgid "You can generate a MO file with the command below:" +msgstr "" + +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:206 +msgid "If the PO file is valid, this command will create a ``fr.mo`` file besides the PO file. This MO file can then be loaded in Godot as described below." +msgstr "" + +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:209 +msgid "The original PO file should be kept in version control so you can update your translation in the future. In case you lose the original PO file and wish to decompile a MO file into a text-based PO file, you can do so with:" +msgstr "" + +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:217 +msgid "The decompiled file will not include comments or fuzzy strings, as these are never compiled in the MO file in the first place." +msgstr "" + #: ../../docs/:0 msgid "Translation status" msgstr "" diff --git a/sphinx/templates/tutorials/inputs/controllers_gamepads_joysticks.pot b/sphinx/templates/tutorials/inputs/controllers_gamepads_joysticks.pot index c82b75d255..f062af5d00 100644 --- a/sphinx/templates/tutorials/inputs/controllers_gamepads_joysticks.pot +++ b/sphinx/templates/tutorials/inputs/controllers_gamepads_joysticks.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/inputs/custom_mouse_cursor.pot b/sphinx/templates/tutorials/inputs/custom_mouse_cursor.pot index ffb97b78a6..266c729030 100644 --- a/sphinx/templates/tutorials/inputs/custom_mouse_cursor.pot +++ b/sphinx/templates/tutorials/inputs/custom_mouse_cursor.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/inputs/handling_quit_requests.pot b/sphinx/templates/tutorials/inputs/handling_quit_requests.pot index bc3d24c6a1..886602f126 100644 --- a/sphinx/templates/tutorials/inputs/handling_quit_requests.pot +++ b/sphinx/templates/tutorials/inputs/handling_quit_requests.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/inputs/index.pot b/sphinx/templates/tutorials/inputs/index.pot index 00d0b3d56d..2d59863f37 100644 --- a/sphinx/templates/tutorials/inputs/index.pot +++ b/sphinx/templates/tutorials/inputs/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/inputs/input_examples.pot b/sphinx/templates/tutorials/inputs/input_examples.pot index cbfdb27086..dd723d46c5 100644 --- a/sphinx/templates/tutorials/inputs/input_examples.pot +++ b/sphinx/templates/tutorials/inputs/input_examples.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/inputs/inputevent.pot b/sphinx/templates/tutorials/inputs/inputevent.pot index 818e5e3101..3d5cab2e00 100644 --- a/sphinx/templates/tutorials/inputs/inputevent.pot +++ b/sphinx/templates/tutorials/inputs/inputevent.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/inputs/mouse_and_input_coordinates.pot b/sphinx/templates/tutorials/inputs/mouse_and_input_coordinates.pot index 1e74f54518..791cd8607e 100644 --- a/sphinx/templates/tutorials/inputs/mouse_and_input_coordinates.pot +++ b/sphinx/templates/tutorials/inputs/mouse_and_input_coordinates.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/io/background_loading.pot b/sphinx/templates/tutorials/io/background_loading.pot index 540af72d0c..9025e8d1bc 100644 --- a/sphinx/templates/tutorials/io/background_loading.pot +++ b/sphinx/templates/tutorials/io/background_loading.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/io/binary_serialization_api.pot b/sphinx/templates/tutorials/io/binary_serialization_api.pot index 0af50e781f..6e9a9c03d8 100644 --- a/sphinx/templates/tutorials/io/binary_serialization_api.pot +++ b/sphinx/templates/tutorials/io/binary_serialization_api.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/io/data_paths.pot b/sphinx/templates/tutorials/io/data_paths.pot index ca2628fa6e..f79068eae2 100644 --- a/sphinx/templates/tutorials/io/data_paths.pot +++ b/sphinx/templates/tutorials/io/data_paths.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,7 +21,7 @@ msgid "File paths in Godot projects" msgstr "" #: ../../docs/tutorials/io/data_paths.rst:6 -msgid "This page explains how file paths work inside Godot projects. You will learn how to access paths in your projects using the ``res://`` and ``user://`` notations and where Godot stores user files on your hard-drive." +msgid "This page explains how file paths work inside Godot projects. You will learn how to access paths in your projects using the ``res://`` and ``user://`` notations, and where Godot stores project and editor files on your and your users' systems." msgstr "" #: ../../docs/tutorials/io/data_paths.rst:11 @@ -29,182 +29,230 @@ msgid "Path separators" msgstr "" #: ../../docs/tutorials/io/data_paths.rst:13 -msgid "To make supporting multiple platforms easier, Godot only accepts UNIX-style path separators (``/``). These work on all platforms, **including Windows**." +msgid "To make supporting multiple platforms easier, Godot uses **UNIX-style path separators** (forward slash ``/``). These work on all platforms, **including Windows**." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:16 -msgid "Instead of writing paths like ``C:\\Projects``, in Godot, you should write ``C:/Projects``." +#: ../../docs/tutorials/io/data_paths.rst:17 +msgid "Instead of writing paths like ``C:\\Projects\\Game``, in Godot, you should write ``C:/Projects/Game``." msgstr "" #: ../../docs/tutorials/io/data_paths.rst:20 -msgid "Accessing files in the project folder" +msgid "Windows-style path separators (backward slash ``\\``) are also supported in some path-related methods, but they need to be doubled (``\\\\``), as ``\\`` is normally used as an escape for characters with a special meaning." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:22 +#: ../../docs/tutorials/io/data_paths.rst:24 +msgid "This makes it possible to work with paths returned by other Windows applications. We still recommend using only forward slashes in your own code to guarantee that everything will work as intended." +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:29 +msgid "Accessing files in the project folder (``res://``)" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:31 msgid "Godot considers that a project exists in any folder that contains a ``project.godot`` text file, even if the file is empty. The folder that contains this file is your project's root folder." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:26 +#: ../../docs/tutorials/io/data_paths.rst:35 msgid "You can access any file relative to it by writing paths starting with ``res://``, which stands for resources. For example, you can access an image file ``character.png`` located in the project's root folder in code with the following path: ``res://character.png``." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:32 -msgid "Accessing persistent user data" +#: ../../docs/tutorials/io/data_paths.rst:41 +msgid "Accessing persistent user data (``user://``)" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:34 +#: ../../docs/tutorials/io/data_paths.rst:43 msgid "To store persistent data files, like the player's save or settings, you want to use ``user://`` instead of ``res://`` as your path's prefix. This is because when the game is running, the project's file system will likely be read-only." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:38 -msgid "The ``user://`` prefix points to a different directory on the user's device. Unlike ``res://``, the directory pointed at by ``user://`` is *guaranteed* to be writable to, even in an exported project." -msgstr "" - -#: ../../docs/tutorials/io/data_paths.rst:42 -msgid "On desktop platforms, the actual directory paths for ``user://`` are:" -msgstr "" - -#: ../../docs/tutorials/io/data_paths.rst:45 -#: ../../docs/tutorials/io/data_paths.rst:73 -msgid "Type" -msgstr "" - -#: ../../docs/tutorials/io/data_paths.rst:45 -#: ../../docs/tutorials/io/data_paths.rst:73 -msgid "Location" -msgstr "" - #: ../../docs/tutorials/io/data_paths.rst:47 -#: ../../docs/tutorials/io/data_paths.rst:75 -msgid "User data" -msgstr "" - -#: ../../docs/tutorials/io/data_paths.rst:47 -#: ../../docs/tutorials/io/data_paths.rst:75 -msgid "Windows: ``%APPDATA%\\Godot\\app_userdata\\[project_name]``" -msgstr "" - -#: ../../docs/tutorials/io/data_paths.rst:48 -msgid "macOS: ``~/Library/Application Support/Godot/app_userdata/[project_name]``" -msgstr "" - -#: ../../docs/tutorials/io/data_paths.rst:49 -msgid "Linux: ``~/.local/share/godot/app_userdata/[project_name]``" +msgid "The ``user://`` prefix points to a different directory on the user's device. Unlike ``res://``, the directory pointed at by ``user://`` is created automatically and *guaranteed* to be writable to, even in an exported project." msgstr "" #: ../../docs/tutorials/io/data_paths.rst:51 -#: ../../docs/tutorials/io/data_paths.rst:79 -msgid "User data (when ``use_custom_user_dir`` project setting is ``true``)" +msgid "The location of the ``user://`` folder depends on what is configured in the Project Settings:" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:51 -#: ../../docs/tutorials/io/data_paths.rst:79 -msgid "Windows: ``%APPDATA%\\[project_name]``" +#: ../../docs/tutorials/io/data_paths.rst:54 +msgid "By default, the ``user://`` folder is created within Godot's :ref:`editor data path ` in the ``app_userdata/[project_name]`` folder. This is the default so that prototypes and test projects stay self-contained within Godot's data folder." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:52 -#: ../../docs/tutorials/io/data_paths.rst:80 -msgid "macOS: ``~/Library/Application Support/[project_name]``" +#: ../../docs/tutorials/io/data_paths.rst:58 +msgid "If :ref:`application/config/use_custom_user_dir ` is enabled in the Project Settings, the ``user://`` folder is created **next to** Godot's editor data path, i.e. in the standard location for applications data." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:53 -#: ../../docs/tutorials/io/data_paths.rst:81 -msgid "Linux: ``~/.local/share/[project_name]``" -msgstr "" - -#: ../../docs/tutorials/io/data_paths.rst:56 -msgid "``[project_name]`` is based on the application name defined in the Project Settings, but you can override it on a per-platform basis using :ref:`feature tags `." -msgstr "" - -#: ../../docs/tutorials/io/data_paths.rst:59 -msgid "On mobile platforms, this path is unique to the project and is not accessible by other applications for security reasons." -msgstr "" - -#: ../../docs/tutorials/io/data_paths.rst:62 -msgid "On HTML5 exports, ``user://`` will refer to a virtual filesystem stored on the device via IndexedDB. (Interaction with the main filesystem can still be performed through the :ref:`JavaScript ` singleton.)" -msgstr "" - -#: ../../docs/tutorials/io/data_paths.rst:67 -msgid "Editor data paths" +#: ../../docs/tutorials/io/data_paths.rst:63 +msgid "By default, the folder name will be inferred from the project name, but it can be further customized with :ref:`application/config/custom_user_dir_name `. This path can contain path separators, so you can use it e.g. to group projects of a given studio with a ``Studio Name/Game Name`` structure." msgstr "" #: ../../docs/tutorials/io/data_paths.rst:69 -msgid "The editor uses different paths for user data, user settings, and cache, depending on the platform. By default, these paths are:" +msgid "On desktop platforms, the actual directory paths for ``user://`` are:" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:76 -msgid "macOS: ``~/Library/Application Support/Godot/[project_name]``" +#: ../../docs/tutorials/io/data_paths.rst:72 +#: ../../docs/tutorials/io/data_paths.rst:121 +msgid "Type" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:77 -msgid "Linux: ``~/.local/share/godot/[project_name]``" +#: ../../docs/tutorials/io/data_paths.rst:72 +#: ../../docs/tutorials/io/data_paths.rst:121 +msgid "Location" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:83 -msgid "User settings" +#: ../../docs/tutorials/io/data_paths.rst:74 +msgid "Default" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:83 -msgid "Windows: ``%APPDATA%\\Godot\\``" +#: ../../docs/tutorials/io/data_paths.rst:0 +msgid "Windows: ``%APPDATA%\\Godot\\app_userdata\\[project_name]``" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:84 -msgid "macOS: ``~/Library/Application Support/Godot/``" +#: ../../docs/tutorials/io/data_paths.rst:0 +msgid "macOS: ``~/Library/Application Support/Godot/app_userdata/[project_name]``" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:85 -msgid "Linux: ``~/.config/godot/``" +#: ../../docs/tutorials/io/data_paths.rst:0 +msgid "Linux: ``~/.local/share/godot/app_userdata/[project_name]``" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:78 +msgid "Custom dir" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:0 +msgid "Windows: ``%APPDATA%\\[project_name]``" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:0 +msgid "macOS: ``~/Library/Application Support/[project_name]``" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:0 +msgid "Linux: ``~/.local/share/[project_name]``" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:82 +msgid "Custom dir and name" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:0 +msgid "Windows: ``%APPDATA%\\[custom_user_dir_name]``" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:0 +msgid "macOS: ``~/Library/Application Support/[custom_user_dir_name]``" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:0 +msgid "Linux: ``~/.local/share/[custom_user_dir_name]``" msgstr "" #: ../../docs/tutorials/io/data_paths.rst:87 -msgid "Cache" +msgid "``[project_name]`` is based on the application name defined in the Project Settings, but you can override it on a per-platform basis using :ref:`feature tags `." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:87 -msgid "Windows: ``%TEMP%\\Godot\\``" -msgstr "" - -#: ../../docs/tutorials/io/data_paths.rst:88 -msgid "macOS: ``~/Library/Caches/Godot/``" -msgstr "" - -#: ../../docs/tutorials/io/data_paths.rst:89 -msgid "Linux: ``~/.cache/godot/``" -msgstr "" - -#: ../../docs/tutorials/io/data_paths.rst:92 -msgid "**User data** contains export templates and project-specific data." +#: ../../docs/tutorials/io/data_paths.rst:90 +msgid "On mobile platforms, this path is unique to the project and is not accessible by other applications for security reasons." msgstr "" #: ../../docs/tutorials/io/data_paths.rst:93 -msgid "**User settings** contains editor settings, text editor themes, script templates, etc." -msgstr "" - -#: ../../docs/tutorials/io/data_paths.rst:95 -msgid "**Cache** contains temporary data. It can safely be removed when Godot is closed." +msgid "On HTML5 exports, ``user://`` will refer to a virtual filesystem stored on the device via IndexedDB. (Interaction with the main filesystem can still be performed through the :ref:`JavaScript ` singleton.)" msgstr "" #: ../../docs/tutorials/io/data_paths.rst:98 +msgid "Converting paths to absolute paths or \"local\" paths" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:100 +msgid "You can use :ref:`ProjectSettings.globalize_path() ` to convert a \"local\" path like ``res://path/to/file.txt`` to an absolute OS path. For example, :ref:`ProjectSettings.globalize_path() ` can be used to open \"local\" paths in the OS file manager using :ref:`OS.shell_open() ` since it only accepts native OS paths." +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:107 +msgid "To convert an absolute OS path to a \"local\" path starting with ``res://`` or ``user://``, use :ref:`ProjectSettings.localize_path() `. This only works for absolute paths that point to files or folders in your project's root or ``user://`` folders." +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:115 +msgid "Editor data paths" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:117 +msgid "The editor uses different paths for editor data, editor settings, and cache, depending on the platform. By default, these paths are:" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:123 +msgid "Editor data" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:0 +#: ../../docs/tutorials/io/data_paths.rst:0 +msgid "Windows: ``%APPDATA%\\Godot\\``" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:0 +#: ../../docs/tutorials/io/data_paths.rst:0 +msgid "macOS: ``~/Library/Application Support/Godot/``" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:0 +msgid "Linux: ``~/.local/share/godot/``" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:127 +msgid "Editor settings" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:0 +msgid "Linux: ``~/.config/godot/``" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:131 +msgid "Cache" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:0 +msgid "Windows: ``%TEMP%\\Godot\\``" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:0 +msgid "macOS: ``~/Library/Caches/Godot/``" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:0 +msgid "Linux: ``~/.cache/godot/``" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:136 +msgid "**Editor data** contains export templates and project-specific data." +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:137 +msgid "**Editor settings** contains the main editor settings configuration file as well as various other user-specific customizations (editor layouts, feature profiles, script templates, etc.)." +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:140 +msgid "**Cache** contains data generated by the editor, or stored temporarily. It can safely be removed when Godot is closed." +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:143 msgid "Godot complies with the `XDG Base Directory Specification `__ on all platforms. You can override environment variables following the specification to change the editor and project data paths." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:103 +#: ../../docs/tutorials/io/data_paths.rst:148 msgid "If you use `Godot packaged as a Flatpak `__, the editor data paths will be located in subfolders in ``~/.var/app/org.godotengine.Godot/``." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:111 +#: ../../docs/tutorials/io/data_paths.rst:156 msgid "Self-contained mode" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:113 -msgid "If you create a file called ``._sc_`` or ``_sc_`` in the same directory as the editor binary, Godot will enable *self-contained mode*. This mode makes Godot write all user data to a directory named ``editor_data/`` in the same directory as the editor binary. You can use it to create a portable installation of the editor." +#: ../../docs/tutorials/io/data_paths.rst:158 +msgid "If you create a file called ``._sc_`` or ``_sc_`` in the same directory as the editor binary (or in `MacOS/Contents/` for a macOS editor .app bundle), Godot will enable *self-contained mode*. This mode makes Godot write all editor data, settings, and cache to a directory named ``editor_data/`` in the same directory as the editor binary. You can use it to create a portable installation of the editor." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:119 +#: ../../docs/tutorials/io/data_paths.rst:165 msgid "The `Steam release of Godot `__ uses self-contained mode by default." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:124 +#: ../../docs/tutorials/io/data_paths.rst:170 msgid "Self-contained mode is not supported in exported projects yet. To read and write files relative to the executable path, use :ref:`OS.get_executable_path() `. Note that writing files in the executable path only works if the executable is placed in a writable location (i.e. **not** Program Files or another directory that is read-only for regular users)." msgstr "" diff --git a/sphinx/templates/tutorials/io/index.pot b/sphinx/templates/tutorials/io/index.pot index 2512defed9..030aa49a51 100644 --- a/sphinx/templates/tutorials/io/index.pot +++ b/sphinx/templates/tutorials/io/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/io/saving_games.pot b/sphinx/templates/tutorials/io/saving_games.pot index 65dd7acaf4..1e492675e3 100644 --- a/sphinx/templates/tutorials/io/saving_games.pot +++ b/sphinx/templates/tutorials/io/saving_games.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/math/beziers_and_curves.pot b/sphinx/templates/tutorials/math/beziers_and_curves.pot index 1e84a29dbc..2bec49843c 100644 --- a/sphinx/templates/tutorials/math/beziers_and_curves.pot +++ b/sphinx/templates/tutorials/math/beziers_and_curves.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/math/index.pot b/sphinx/templates/tutorials/math/index.pot index 013fcdbf15..abd371fbce 100644 --- a/sphinx/templates/tutorials/math/index.pot +++ b/sphinx/templates/tutorials/math/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/math/interpolation.pot b/sphinx/templates/tutorials/math/interpolation.pot index 032ec91ed5..ed217af92e 100644 --- a/sphinx/templates/tutorials/math/interpolation.pot +++ b/sphinx/templates/tutorials/math/interpolation.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/math/matrices_and_transforms.pot b/sphinx/templates/tutorials/math/matrices_and_transforms.pot index c67954b71c..a5d51dc1a9 100644 --- a/sphinx/templates/tutorials/math/matrices_and_transforms.pot +++ b/sphinx/templates/tutorials/math/matrices_and_transforms.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/math/random_number_generation.pot b/sphinx/templates/tutorials/math/random_number_generation.pot index 18b8417a0b..b205e98709 100644 --- a/sphinx/templates/tutorials/math/random_number_generation.pot +++ b/sphinx/templates/tutorials/math/random_number_generation.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/math/vector_math.pot b/sphinx/templates/tutorials/math/vector_math.pot index 7a12626ff9..d0ff3469cb 100644 --- a/sphinx/templates/tutorials/math/vector_math.pot +++ b/sphinx/templates/tutorials/math/vector_math.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/math/vectors_advanced.pot b/sphinx/templates/tutorials/math/vectors_advanced.pot index b89094f980..2fb3c4537e 100644 --- a/sphinx/templates/tutorials/math/vectors_advanced.pot +++ b/sphinx/templates/tutorials/math/vectors_advanced.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/navigation/index.pot b/sphinx/templates/tutorials/navigation/index.pot index 380053ec39..b37dc5dbfd 100644 --- a/sphinx/templates/tutorials/navigation/index.pot +++ b/sphinx/templates/tutorials/navigation/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/navigation/real_time_navigation_3d.pot b/sphinx/templates/tutorials/navigation/real_time_navigation_3d.pot index 28d12ebffa..8222026fe4 100644 --- a/sphinx/templates/tutorials/navigation/real_time_navigation_3d.pot +++ b/sphinx/templates/tutorials/navigation/real_time_navigation_3d.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -25,57 +25,109 @@ msgid "Introduction" msgstr "" #: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:9 -msgid "Godot provides two nodes which can be used to achieve real time navigation in a 3D environment, :ref:`Navigation ` and :ref:`NavigationMeshInstance `." +msgid "Pathfinding in a 3D environment is crucial for many games, it's commonly how non directly controlled characters or entities find their way around an environment. Godot provides several nodes for this purpose:" msgstr "" -#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:12 -msgid "A navigation mesh instance is used to hold a :ref:`NavigationMesh `, which defines what areas in a scene can be navigated to. The :ref:`Navigation ` node is then used for pathfinding with the navigation mesh." +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:13 +msgid ":ref:`Navigation` (deprecated)" msgstr "" -#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:17 -msgid "Setting up navigation" +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:14 +msgid ":ref:`NavigationMeshInstance`" +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:15 +msgid ":ref:`NavigationAgent`" +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:16 +msgid ":ref:`NavigationObstacle`" msgstr "" #: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:19 -msgid "To add navigation to a scene you need to add a navigation node, then a navigation mesh instance as a child of the navigation node. With the navigation mesh instance selected you need to go to the inspector and create a new navigation mesh." +msgid "The map and navigation regions" +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:21 +msgid "The \"map\" is the entire world for navigation, it's similar to \"space\" for the physics engine. It's comprised of navigation regions, these regions define parts of the world that can be navigated around by navigation agents." msgstr "" #: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:26 -msgid "Click on the navigation mesh and you can now alter the properties that define how the navigation mesh is generated. You can find a full description for each of the properties in the class reference here: :ref:`NavigationMesh `." +msgid "To create a navigation region add the :ref:`NavigationMeshInstance` node to a 3D scene. Next in the inspector for that mesh create or add a :ref:`NavigationMesh`. The navmesh contains options for how it will be generated when it's baked. The geometry options control which nodes, and types of nodes, are used to bake the mesh. A full description of each setting and how it works can be found in the :ref:`NavigationMesh class reference`." msgstr "" -#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:31 -msgid "After making the changes you want the mesh can be generated by clicking **Bake NavMesh** in the toolbar." +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:33 +msgid "Once the settings have been properly configured press the \"Bake NavMesh\" button at the top of the inspector to generate it." msgstr "" -#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:36 -msgid "Once the mesh has finished generating you should see the transparent navigation mesh above the areas in your scene that can be navigated to." +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:40 +msgid "It can also be generated at runtime using the `bake_navigation_region()` method of the navigation region node." msgstr "" -#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:41 -msgid "Keep in mind that the navmesh shows where the center of an entity can go. For example, if you set the agent radius to 0.5 then your navigation mesh will have a distance of 0.5 from any ledges or walls to prevent clipping into the wall or hanging off of the edge." +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:43 +msgid "Once the mesh has finished generating you should see the transparent navigation mesh above the areas in the scene that can be navigated to." msgstr "" -#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:47 -msgid "Generating a path" +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:48 +msgid "Keep in mind that the navmesh shows where the center of an entity can go. For example, if you set the agent radius to 0.5 then the navigation mesh will have a distance of 0.5 from any ledges or walls to prevent clipping into the wall or hanging off of the edge." msgstr "" -#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:49 +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:53 +msgid "Navigation agents can moved from one region to another if they are next to each other. Additionally a baked navmesh can be moved at runtime and agents will still be able to navigate onto it from another region. For example, navigating onto a moving platform that has stopped will work." +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:59 +msgid "NavigationAgent3D" +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:61 +msgid "Navigation agent nodes are what actually does the pathfinding in a scene, one can be attached to the root node of an entity that needs to navigate." +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:64 +msgid "To have it pathfind use its `set_target_location` method. Once the target has been set a path will be generated to the node using navigation regions, with several points on the way to the final destination." +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:69 +msgid "RVO processing" +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:71 +msgid "RVO stands for reciprocal velocity obstacle. RVO processing is a way to pathfind while taking into account other agents and physics bodies that are also moving." +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:75 +msgid "To use it set a target like normal. Then an agent needs to fetch its next nav path location, and compute its velocity to that location. Instead of using that value to move use it to set the velocity on the agent with `set_velocity`. Then a new velocity that takes into account other agents and obstacles is generated and emitted with the signal `velocity_computed`." +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:81 +msgid "However agents can only take into account a set number of other nearby agents, this is the :ref:`max neighbors` property of an agent and can be adjusted. This is **not** a limit for how many agents can use a navigation region at the same time." +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:87 +msgid "NavigationObstacle3D" +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:89 +msgid "This node is used to mark physics bodies that move around a navigation area that agents need to avoid (this will only work if you use RVO processing). For example, this node would be useful for pieces of debris in a destructible environment. Add it as the child of a physics body and navigation agent nodes will avoid it while pathfinding." +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:96 +msgid "Generating a path (old method)" +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:98 +msgid "This is the old method for generating a navigation path, it will be removed in Godot 4. First, add a navigation node to the scene, then add a navigation mesh instance as it's child and set up a navigation mesh." +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:103 msgid "To get a path between two areas on a map you use the navigation node method ``get_simple_path()``. The first argument is a Vector3 of the starting location, the next is a Vector3 of the end location. And the last argument is a boolean for whether or not agent properties of a navmesh are considered when generating a path." msgstr "" -#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:55 +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:109 msgid "The method will return a :ref:`PoolVector3Array ` consisting of points that make a path. If there is no way to navigate to the end location the method will return a blank :ref:`PoolVector3Array `." msgstr "" -#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:60 -msgid "Official example project" -msgstr "" - -#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:62 -msgid "There is an official example project on how to use 3D navigation. You can find the repository `here `__. It can also be found in the asset library." -msgstr "" - #: ../../docs/:0 msgid "Translation status" msgstr "" diff --git a/sphinx/templates/tutorials/networking/high_level_multiplayer.pot b/sphinx/templates/tutorials/networking/high_level_multiplayer.pot index dd53d756a0..d04d1a6a46 100644 --- a/sphinx/templates/tutorials/networking/high_level_multiplayer.pot +++ b/sphinx/templates/tutorials/networking/high_level_multiplayer.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -53,7 +53,7 @@ msgid "In summary, you can use the low-level networking API for maximum control msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:28 -msgid "Most of Godot's supported platforms offer all or most of the mentioned high- and low-level networking features. As networking is always largely hardware and operating system dependent, however, some features may change or not be available on some target platforms. Most notably, the HTML5 platform currently only offers WebSocket support and lacks some of the higher level features as well as raw access to low-level protocols like TCP and UDP." +msgid "Most of Godot's supported platforms offer all or most of the mentioned high- and low-level networking features. As networking is always largely hardware and operating system dependent, however, some features may change or not be available on some target platforms. Most notably, the HTML5 platform currently offers WebSockets and WebRTC support but lacks some of the higher-level features, as well as raw access to low-level protocols like TCP and UDP." msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:34 @@ -241,11 +241,11 @@ msgid "Functions can be called in two fashions:" msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:175 -msgid "Reliable: the function call will arrive no matter what, but may take longer because it will be re-transmitted in case of failure." +msgid "Reliable: when the function call arrives, an acknowledgement will be sent back; if the acknowledgement isn't received after a certain amount of time, the function call will be re-transmitted." msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:176 -msgid "Unreliable: if the function call does not arrive, it will not be re-transmitted; but if it arrives, it will do it quickly." +msgid "Unreliable: the function call is sent only once, without checking to see if it arrived or not, but also without any extra overhead." msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:178 @@ -253,7 +253,7 @@ msgid "In most cases, reliable is desired. Unreliable is mostly useful when sync msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:181 -msgid "There is also the ``get_rpc_sender_id`` function in ``SceneTree``, which can be used to check which peer (or peer ID) sent an RPC." +msgid "There is also :ref:`SceneTree.get_rpc_sender_id() `, which can be used to check which peer (or peer ID) sent an RPC." msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:184 @@ -269,186 +269,202 @@ msgid "You might have already noticed something different, which is the usage of msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:238 -msgid "This keyword has two main uses. The first is to let Godot know that this function can be called from RPC. If no keywords are added, Godot will block any attempts to call functions for security. This makes security work a lot easier (so a client can't call a function to delete a file on another client's system)." +msgid "This keyword is one of many that allow a function to be called by a remote procedure call (RPC). There are six of them total:" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:242 -msgid "The second use is to specify how the function will be called via RPC. There are four different keywords:" -msgstr "" - -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:244 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:240 msgid "``remote``" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:245 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:241 msgid "``remotesync``" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:246 -msgid "``master``" -msgstr "" - -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:247 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:242 msgid "``puppet``" msgstr "" +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:243 +msgid "``puppetsync``" +msgstr "" + +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:244 +msgid "``master``" +msgstr "" + +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:245 +msgid "``mastersync``" +msgstr "" + +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:247 +msgid "Each of them designate who can call the rpc, and optionally ``sync`` if the RPC can be called locally." +msgstr "" + #: ../../docs/tutorials/networking/high_level_multiplayer.rst:249 -msgid "The ``remote`` keyword means that the ``rpc()`` call will go via network and execute remotely." +msgid "If no rpc keywords are added, Godot will block any attempts to call functions remotely. This makes security work a lot easier (so a client can't call a function to delete a file on another client's system)." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:251 -msgid "The ``remotesync`` keyword means that the ``rpc()`` call will go via network and execute remotely, but will also execute locally (do a normal function call)." -msgstr "" - -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:253 -msgid "The others will be explained further down. Note that you could also use the ``get_rpc_sender_id`` function on ``SceneTree`` to check which peer actually made the RPC call to ``register_player``." +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:252 +msgid "The ``remote`` keyword can be called by any peer, including the server and all clients. The ``puppet`` keyword means a call can be made from the network master to any network puppet. The ``master`` keyword means a call can be made from any network puppet to the network master." msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:256 -msgid "With this, lobby management should be more or less explained. Once you have your game going, you will most likely want to add some extra security to make sure clients don't do anything funny (just validate the info they send from time to time, or before game start). For the sake of simplicity and because each game will share different information, this is not shown here." -msgstr "" - -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:261 -msgid "Starting the game" +msgid "If ``sync`` is included, the call can also be made locally. For example, to allow the network master to change the player's position on all peers:" msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:263 -msgid "Once enough players have gathered in the lobby, the server should probably start the game. This is nothing special in itself, but we'll explain a few nice tricks that can be done at this point to make your life much easier." +msgid "You can also use :ref:`SceneTree.get_rpc_sender_id() ` to have more advanced rules on how an rpc can be called." +msgstr "" + +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:265 +msgid "These keywords are further explained in :ref:`Synchronizing the game `." msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:267 -msgid "Player scenes" -msgstr "" - -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:269 -msgid "In most games, each player will likely have its own scene. Remember that this is a multiplayer game, so in every peer you need to instance **one scene for each player connected to it**. For a 4 player game, each peer needs to instance 4 player nodes." +msgid "With this, lobby management should be more or less explained. Once you have your game going, you will most likely want to add some extra security to make sure clients don't do anything funny (just validate the info they send from time to time, or before game start). For the sake of simplicity and because each game will share different information, this is not shown here." msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:272 +msgid "Starting the game" +msgstr "" + +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:274 +msgid "Once enough players have gathered in the lobby, the server should probably start the game. This is nothing special in itself, but we'll explain a few nice tricks that can be done at this point to make your life much easier." +msgstr "" + +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:278 +msgid "Player scenes" +msgstr "" + +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:280 +msgid "In most games, each player will likely have its own scene. Remember that this is a multiplayer game, so in every peer you need to instance **one scene for each player connected to it**. For a 4 player game, each peer needs to instance 4 player nodes." +msgstr "" + +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:283 msgid "So, how to name such nodes? In Godot, nodes need to have a unique name. It must also be relatively easy for a player to tell which node represents each player ID." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:275 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:286 msgid "The solution is to simply name the *root nodes of the instanced player scenes as their network ID*. This way, they will be the same in every peer and RPC will work great! Here is an example:" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:305 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:316 msgid "Depending on when you execute pre_configure_game(), you may need to change any calls to ``add_child()`` to be deferred via ``call_deferred()``, as the SceneTree is locked while the scene is being created (e.g. when ``_ready()`` is being called)." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:309 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:320 msgid "Synchronizing game start" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:311 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:322 msgid "Setting up players might take different amounts of time for every peer due to lag, different hardware, or other reasons. To make sure the game will actually start when everyone is ready, pausing the game until all players are ready can be useful:" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:320 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:331 msgid "When the server gets the OK from all the peers, it can tell them to start, as for example:" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:344 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:357 msgid "Synchronizing the game" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:346 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:359 msgid "In most games, the goal of multiplayer networking is that the game runs synchronized on all the peers playing it. Besides supplying an RPC and remote member variable set implementation, Godot adds the concept of network masters." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:350 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:363 msgid "Network master" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:352 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:365 msgid "The network master of a node is the peer that has the ultimate authority over it." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:354 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:367 msgid "When not explicitly set, the network master is inherited from the parent node, which if not changed, is always going to be the server (ID 1). Thus the server has authority over all nodes by default." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:356 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:369 msgid "The network master can be set with the function :ref:`Node.set_network_master(id, recursive) ` (recursive is ``true`` by default and means the network master is recursively set on all child nodes of the node as well)." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:359 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:372 msgid "Checking that a specific node instance on a peer is the network master for this node for all connected peers is done by calling :ref:`Node.is_network_master() `. This will return ``true`` when executed on the server and ``false`` on all client peers." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:361 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:374 msgid "If you have paid attention to the previous example, it's possible you noticed that each peer was set to have network master authority for their own player (Node) instead of the server:" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:381 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:394 msgid "Each time this piece of code is executed on each peer, the peer makes itself master on the node it controls, and all other nodes remain as puppets with the server being their network master." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:383 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:396 msgid "To clarify, here is an example of how this looks in the `bomber demo `_:" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:390 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:403 msgid "Master and puppet keywords" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:394 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:407 msgid "The real advantage of this model is when used with the ``master``/``puppet`` keywords in GDScript (or their equivalent in C# and Visual Script). Similarly to the ``remote`` keyword, functions can also be tagged with them:" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:397 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:410 msgid "Example bomb code:" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:405 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:418 msgid "Example player code:" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:422 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:435 msgid "In the above example, a bomb explodes somewhere (likely managed by whoever is the master of this bomb-node, e.g. the host). The bomb knows the bodies (player nodes) in the area, so it checks that they contain an ``exploded`` method before calling it." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:425 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:438 msgid "Recall that each peer has a complete set of instances of player nodes, one instance for each peer (including itself and the host). Each peer has set itself as the master of the instance corresponding to itself, and it has set a different peer as the master for each of the other instances." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:429 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:442 msgid "Now, going back to the call to the ``exploded`` method, the bomb on the host has called it remotely on all bodies in the area that have the method. However, this method is in a player node and has a ``master`` keyword." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:432 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:445 msgid "The ``master`` keyword on the ``exploded`` method in the player node means two things for how this call is made. Firstly, from the perspective of the calling peer (the host), the calling peer will only attempt to remotely call the method on the peer that it has set as the network master of the player node in question. Secondly, from the perspective of the peer the host is sending the call to, the peer will only accept the call if it set itself as the network master of the player node with the method being called (which has the ``master`` keyword). This works well as long as all peers agree on who is the master of what." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:439 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:452 msgid "The above setup means that only the peer who owns the affected body will be responsible for telling all the other peers that its body was stunned, after being remotely instructed to do so by the host's bomb. The owning peer therefore (still in the ``exploded`` method) tells all the other peers that its player node was stunned. The peer does this by remotely calling the ``stun`` method on all instances of that player node (on the other peers). Because the ``stun`` method has the ``puppet`` keyword, only peers who did not set themselves as the network master of the node will call it (in other words, those peers are set as puppets for that node by virtue of not being the network master of it)." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:446 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:459 msgid "The result of this call to ``stun`` is to make the player look stunned on the screen of all the peers, including the current network master peer (due to the local call to ``stun`` after ``rpc(\"stun\")``)." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:449 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:462 msgid "The master of the bomb (the host) repeats the above steps for each of the bodies in the area, such that all the instances of any player in the bomb area get stunned on the screens of all the peers." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:452 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:465 msgid "Note that you could also send the ``stun()`` message only to a specific player by using ``rpc_id(, \"exploded\", bomb_owner)``. This may not make much sense for an area-of-effect case like the bomb, but might in other cases, like single target damage." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:460 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:473 msgid "Exporting for dedicated servers" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:462 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:475 msgid "Once you've made a multiplayer game, you may want to export it to run it on a dedicated server with no GPU available. See :ref:`doc_exporting_for_dedicated_servers` for more information." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:468 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:481 msgid "The code samples on this page aren't designed to run on a dedicated server. You'll have to modify them so the server isn't considered to be a player. You'll also have to modify the game starting mechanism so that the first player who joins can start the game." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:475 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:488 msgid "The bomberman example here is largely for illustrational purposes, and does not do anything on the host-side to handle the case where a peer uses a custom client to cheat by for example refusing to stun itself. In the current implementation such cheating is perfectly possible because each client is the network master of its own player, and the network master of a player is the one which decides whether to call the I-was-stunned method (``stun``) on all of the other peers and itself." msgstr "" diff --git a/sphinx/templates/tutorials/networking/http_client_class.pot b/sphinx/templates/tutorials/networking/http_client_class.pot index 051fd506e9..3aeb38b25c 100644 --- a/sphinx/templates/tutorials/networking/http_client_class.pot +++ b/sphinx/templates/tutorials/networking/http_client_class.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/networking/http_request_class.pot b/sphinx/templates/tutorials/networking/http_request_class.pot index acc4574467..f178b51199 100644 --- a/sphinx/templates/tutorials/networking/http_request_class.pot +++ b/sphinx/templates/tutorials/networking/http_request_class.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/networking/index.pot b/sphinx/templates/tutorials/networking/index.pot index 47e36fd943..0c178e0779 100644 --- a/sphinx/templates/tutorials/networking/index.pot +++ b/sphinx/templates/tutorials/networking/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/networking/ssl_certificates.pot b/sphinx/templates/tutorials/networking/ssl_certificates.pot index f2b89605ab..117410ee94 100644 --- a/sphinx/templates/tutorials/networking/ssl_certificates.pot +++ b/sphinx/templates/tutorials/networking/ssl_certificates.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/networking/webrtc.pot b/sphinx/templates/tutorials/networking/webrtc.pot index 1154afe664..76c595aa13 100644 --- a/sphinx/templates/tutorials/networking/webrtc.pot +++ b/sphinx/templates/tutorials/networking/webrtc.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/networking/websocket.pot b/sphinx/templates/tutorials/networking/websocket.pot index d535bc3e26..50e50ce6fd 100644 --- a/sphinx/templates/tutorials/networking/websocket.pot +++ b/sphinx/templates/tutorials/networking/websocket.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/performance/batching.pot b/sphinx/templates/tutorials/performance/batching.pot index eb36bd46d1..efa42d15a8 100644 --- a/sphinx/templates/tutorials/performance/batching.pot +++ b/sphinx/templates/tutorials/performance/batching.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/performance/cpu_optimization.pot b/sphinx/templates/tutorials/performance/cpu_optimization.pot index 997b372297..c1131fb0f2 100644 --- a/sphinx/templates/tutorials/performance/cpu_optimization.pot +++ b/sphinx/templates/tutorials/performance/cpu_optimization.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/performance/general_optimization.pot b/sphinx/templates/tutorials/performance/general_optimization.pot index 3732062417..45de8f8cd3 100644 --- a/sphinx/templates/tutorials/performance/general_optimization.pot +++ b/sphinx/templates/tutorials/performance/general_optimization.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/performance/gpu_optimization.pot b/sphinx/templates/tutorials/performance/gpu_optimization.pot index 53d9d19923..edeed79a49 100644 --- a/sphinx/templates/tutorials/performance/gpu_optimization.pot +++ b/sphinx/templates/tutorials/performance/gpu_optimization.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/performance/index.pot b/sphinx/templates/tutorials/performance/index.pot index 1ccd2abe1f..77b34637f6 100644 --- a/sphinx/templates/tutorials/performance/index.pot +++ b/sphinx/templates/tutorials/performance/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/performance/optimizing_3d_performance.pot b/sphinx/templates/tutorials/performance/optimizing_3d_performance.pot index c234164d09..3ff05eb5c4 100644 --- a/sphinx/templates/tutorials/performance/optimizing_3d_performance.pot +++ b/sphinx/templates/tutorials/performance/optimizing_3d_performance.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/performance/threads/thread_safe_apis.pot b/sphinx/templates/tutorials/performance/threads/thread_safe_apis.pot index 19a80d1c1e..159c35fd51 100644 --- a/sphinx/templates/tutorials/performance/threads/thread_safe_apis.pot +++ b/sphinx/templates/tutorials/performance/threads/thread_safe_apis.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/performance/threads/using_multiple_threads.pot b/sphinx/templates/tutorials/performance/threads/using_multiple_threads.pot index 59f456bf23..22f559eae9 100644 --- a/sphinx/templates/tutorials/performance/threads/using_multiple_threads.pot +++ b/sphinx/templates/tutorials/performance/threads/using_multiple_threads.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/performance/using_multimesh.pot b/sphinx/templates/tutorials/performance/using_multimesh.pot index fd2a296607..8bd26026b0 100644 --- a/sphinx/templates/tutorials/performance/using_multimesh.pot +++ b/sphinx/templates/tutorials/performance/using_multimesh.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/performance/using_servers.pot b/sphinx/templates/tutorials/performance/using_servers.pot index 8de21e386a..8d1580a629 100644 --- a/sphinx/templates/tutorials/performance/using_servers.pot +++ b/sphinx/templates/tutorials/performance/using_servers.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/performance/vertex_animation/animating_thousands_of_fish.pot b/sphinx/templates/tutorials/performance/vertex_animation/animating_thousands_of_fish.pot index a977531fec..ed292de925 100644 --- a/sphinx/templates/tutorials/performance/vertex_animation/animating_thousands_of_fish.pot +++ b/sphinx/templates/tutorials/performance/vertex_animation/animating_thousands_of_fish.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/performance/vertex_animation/controlling_thousands_of_fish.pot b/sphinx/templates/tutorials/performance/vertex_animation/controlling_thousands_of_fish.pot index 434d7cc47c..24290f0845 100644 --- a/sphinx/templates/tutorials/performance/vertex_animation/controlling_thousands_of_fish.pot +++ b/sphinx/templates/tutorials/performance/vertex_animation/controlling_thousands_of_fish.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/performance/vertex_animation/index.pot b/sphinx/templates/tutorials/performance/vertex_animation/index.pot index f82f5cd125..f4e38b8495 100644 --- a/sphinx/templates/tutorials/performance/vertex_animation/index.pot +++ b/sphinx/templates/tutorials/performance/vertex_animation/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/physics/collision_shapes_3d.pot b/sphinx/templates/tutorials/physics/collision_shapes_3d.pot index 1ee1ebb31f..d0c2a733c2 100644 --- a/sphinx/templates/tutorials/physics/collision_shapes_3d.pot +++ b/sphinx/templates/tutorials/physics/collision_shapes_3d.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/physics/index.pot b/sphinx/templates/tutorials/physics/index.pot index 1f8ce1183c..0d55768243 100644 --- a/sphinx/templates/tutorials/physics/index.pot +++ b/sphinx/templates/tutorials/physics/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/physics/interpolation/advanced_physics_interpolation.pot b/sphinx/templates/tutorials/physics/interpolation/advanced_physics_interpolation.pot new file mode 100644 index 0000000000..aba179b4ad --- /dev/null +++ b/sphinx/templates/tutorials/physics/interpolation/advanced_physics_interpolation.pot @@ -0,0 +1,177 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2022, 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 , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine 3.5\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:4 +msgid "Advanced physics interpolation" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:6 +msgid "Although the previous instructions will give satisfactory results in a lot of games, in some cases you will want to go a stage further to get the best possible results and the smoothest possible experience." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:9 +msgid "Exceptions to automatic physics interpolation" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:11 +msgid "Even with physics interpolation active, there may be some local situations where you would benefit from disabling automatic interpolation for a :ref:`Node` (or branch of the :ref:`SceneTree`), and have the finer control of performing interpolation manually." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:13 +msgid "This is possible using the :ref:`Node.physics_interpolation_mode` property which is present in all Nodes. If you for example, turn off interpolation for a Node, the children will recursively also be affected (as they default to inheriting the parent setting). This means you can easily disable interpolation for an entire subscene." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:15 +msgid "The most common situation where you may want to perform your own interpolation is Cameras." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:18 +msgid "Cameras" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:20 +msgid "In many cases, a :ref:`Camera` can use automatic interpolation just like any other node. However, for best results, especially at low physics tick rates, it is recommended that you take a manual approach to Camera interpolation." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:22 +msgid "This is because viewers are very sensitive to Camera movement. For instance, a Camera that realigns slightly every 1/10th of a second (at 10tps tick rate) will often be noticeable. You can get a much smoother result by moving the Camera each frame in ``_process``, and following an interpolated target manually." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:25 +msgid "Manual Camera interpolation" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:27 +msgid "**Ensure the Camera is using global coordinate space**" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:29 +msgid "The very first step when performing manual Camera interpolation is to make sure the Camera transform is specified in *global space* rather than inheriting the transform of a moving parent. This is because feedback can occur between the movement of a parent node of a Camera and the movement of the Camera Node itself, which can mess up the interpolation." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:31 +msgid "There are two ways of doing this:" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:33 +msgid "Move the Camera so it is independent on its own branch, rather than being a child of a moving object." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:37 +msgid "Call :ref:`Spatial.set_as_toplevel` and set this to ``true``, which will make the Camera ignore the transform of its parent." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:40 +msgid "Typical example" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:42 +msgid "A typical example of a custom approach is to use the ``look_at`` function in the Camera every frame in ``_process()`` to look at a target node (such as the player)." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:44 +msgid "But there is a problem. If we use the traditional ``get_global_transform()`` on a Camera \"target\" Node, this transform will only focus the Camera on the target *at the current physics tick*. This is *not* what we want, as the Camera will jump about on each physics tick as the target moves. Even though the Camera may be updated each frame, this does not help give smooth motion if the *target* is only changing each physics tick." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:47 +msgid "get_global_transform_interpolated()" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:49 +msgid "What we really want to focus the Camera on, is not the position of the target on the physics tick, but the *interpolated* position, i.e. the position at which the target will be rendered." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:51 +msgid "We can do this using the :ref:`Spatial.get_global_transform_interpolated` function. This acts exactly like getting :ref:`Spatial.global_transform` but it gives you the *interpolated* transform (during a ``_process()`` call)." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:53 +msgid "``get_global_transform_interpolated()`` should only be used once or twice for special cases such as Cameras. It should **not** be used all over the place in your code (both for performance reasons, and to give correct gameplay)." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:55 +msgid "Aside from exceptions like the Camera, in most cases, your game logic should be in ``_physics_process()``. In game logic you should be calling ``get_global_transform()`` or ``get_transform()``, which will give the current physics transform (in global or local space respectively), which is usually what you will want for gameplay code." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:58 +msgid "Example manual Camera script" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:60 +msgid "Here is an example of a simple fixed Camera which follows an interpolated target:" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:92 +msgid "Mouse look" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:94 +msgid "Mouse look is a very common way of controlling Cameras. But there is a problem. Unlike keyboard input which can be sampled periodically on the physics tick, mouse move events can come in continuously. The Camera will be expected to react and follow these mouse movements on the next frame, rather than waiting until the next physics tick." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:96 +msgid "In this situation, it can be better to disable physics interpolation for the Camera node (using :ref:`Node.physics_interpolation_mode`) and directly apply the mouse input to the Camera rotation, rather than apply it in ``_physics_process``." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:98 +msgid "Sometimes, especially with Cameras, you will want to use a combination of interpolation and non-interpolation:" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:100 +msgid "A first person camera may position the camera at a player location (perhaps using :ref:`Spatial.get_global_transform_interpolated`), but control the Camera rotation from mouse look *without* interpolation." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:101 +msgid "A third person camera may similarly determine the look at (target location) of the camera using :ref:`Spatial.get_global_transform_interpolated`, but position the camera using mouse look *without* interpolation." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:103 +msgid "There are many permutations and variations of Camera types, but it should be clear that in many cases, disabling automatic physics interpolation and handling this yourself can give a better result." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:106 +msgid "Disabling interpolation on other nodes" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:108 +msgid "Although Cameras are the most common example, there are a number of cases when you may wish other nodes to control their own interpolation, or be non-interpolated. Consider for example, a player in a top view game whose rotation is controlled by mouse look. Disabling physics rotation allows the player rotation to match the mouse in real-time." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:112 +msgid "MultiMeshes" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:114 +msgid "Although most visual Nodes follow the single Node single visual instance paradigm, MultiMeshes can control several instances from the same Node. Therefore, they have some extra functions for controlling interpolation functionality on a *per-instance* basis. You should explore these functions if you are using interpolated MultiMeshes." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:116 +msgid ":ref:`MultiMesh.reset_instance_physics_interpolation`" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:117 +msgid ":ref:`MultiMesh.set_as_bulk_array_interpolated`" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:119 +msgid "Full details are in the :ref:`MultiMesh` documentation." +msgstr "" + +#: ../../docs/:0 +msgid "Translation status" +msgstr "" diff --git a/sphinx/templates/tutorials/physics/interpolation/index.pot b/sphinx/templates/tutorials/physics/interpolation/index.pot new file mode 100644 index 0000000000..3b2689e1c4 --- /dev/null +++ b/sphinx/templates/tutorials/physics/interpolation/index.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2022, 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 , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine 3.5\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/tutorials/physics/interpolation/index.rst:4 +msgid "Physics Interpolation" +msgstr "" + +#: ../../docs/:0 +msgid "Translation status" +msgstr "" diff --git a/sphinx/templates/tutorials/physics/interpolation/physics_interpolation_introduction.pot b/sphinx/templates/tutorials/physics/interpolation/physics_interpolation_introduction.pot new file mode 100644 index 0000000000..b10a4468a9 --- /dev/null +++ b/sphinx/templates/tutorials/physics/interpolation/physics_interpolation_introduction.pot @@ -0,0 +1,229 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2022, 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 , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine 3.5\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:4 +msgid "Introduction" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:7 +msgid "Physics ticks and rendered frames" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:9 +msgid "One key concept to understand in Godot is the distinction between physics ticks (sometimes referred to as iterations or physics frames), and rendered frames. The physics proceeds at a fixed tick rate (set in :ref:`ProjectSettings.physics/common/physics_fps`), which defaults to 60 ticks per second." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:11 +msgid "However, the engine does not necessarily **render** at the same rate. Although many monitors refresh at 60 Hz (cycles per second), many refresh at completely different frequencies (e.g. 75 Hz, 144 Hz, 240 Hz or more). Even though a monitor may be able to show a new frame e.g. 60 times a second, there is no guarantee that the CPU and GPU will be able to *supply* frames at this rate. For instance, when running with V-Sync, the computer may be too slow for 60 and only reach the deadlines for 30 FPS, in which case the frames you see will change at 30 FPS (resulting in stuttering)." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:13 +msgid "But there is a problem here. What happens if the physics ticks do not coincide with frames? What happens if the physics tick rate is out of phase with the frame rate? Or worse, what happens if the physics tick rate is *lower* than the rendered frame rate?" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:15 +msgid "This problem is easier to understand if we consider an extreme scenario. If you set the physics tick rate to 10 ticks per second, in a simple game with a rendered frame rate of 60 FPS. If we plot a graph of the positions of an object against the rendered frames, you can see that the positions will appear to \"jump\" every 1/10th of a second, rather than giving a smooth motion. When the physics calculates a new position for a new object, it is not rendered in this position for just one frame, but for 6 frames." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:19 +msgid "This jump can be seen in other combinations of tick / frame rate as glitches, or jitter, caused by this staircasing effect due to the discrepancy between physics tick time and rendered frame time." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:22 +msgid "What can we do about frames and ticks being out of sync?" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:25 +msgid "Lock the tick / frame rate together?" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:27 +msgid "The most obvious solution is to get rid of the problem, by ensuring there is a physics tick that coincides with every frame. This used to be the approach on old consoles and fixed hardware computers. If you know that every player will be using the same hardware, you can ensure it is fast enough to calculate ticks and frames at e.g. 50 FPS, and you will be sure it will work great for everybody." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:29 +msgid "However, modern games are often no longer made for fixed hardware. You will often be planning to release on desktop computers, mobiles and more, all of which have huge variations in performance, as well as different monitor refresh rates. We need to come up with a better way of dealing with the problem." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:32 +msgid "Adapt the tick rate?" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:34 +msgid "Instead of designing the game at a fixed physics tick rate, we could allow the tick rate to scale according to the end users hardware. We could for example use a fixed tick rate that works for that hardware, or even vary the duration of each physics tick to match a particular frame duration." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:36 +msgid "This works, but there is a problem. Physics (*and game logic*, which is often also run in the ``_physics_process``) work best and most consistently when run at a **fixed**, predetermined tick rate. If you attempt to run a racing game physics that has been designed for 60 TPS (ticks per second) at e.g. 10 TPS, the physics will behave completely differently. Controls may be less responsive, collisions / trajectories can be completely different. You may test your game thoroughly at 60 TPS, then find it breaks on end users machines when it runs at a different tick rate." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:38 +msgid "This can make quality assurance difficult with hard to reproduce bugs, especially in AAA games where problems of this sort can be very costly. This can also be problematic for multiplayer games for competitive integrity, as running the game at certain tick rates may be more advantageous than others." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:41 +msgid "Lock the tick rate, but use interpolation to smooth frames in between physics ticks" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:43 +msgid "This has become one of the most popular approaches to dealing with the problem. It is supported by Godot 3.5 and later in 3D (although it is optional and disabled by default)." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:45 +msgid "We have established that the most desirable physics/game logic arrangement for consistency and predictability is a physics tick rate that is fixed at design-time. The problem is the discrepancy between the physics position recorded, and where we \"want\" a physics object to be shown on a frame to give smooth motion." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:47 +msgid "The answer turns out to be simple, but can be a little hard to get your head around at first." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:49 +msgid "Instead of keeping track of just the current position of a physics object in the engine, we keep track of *both the current position of the object, and the previous position* on the previous physics tick." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:51 +msgid "Why do we need the previous position *(in fact the entire transform, including rotation and scaling)*? By using a little math magic, we can use **interpolation** to calculate what the transform of the object would be between those two points, in our ideal world of smooth continuous movement." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:56 +msgid "Linear interpolation" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:58 +msgid "The simplest way to achieve this is linear interpolation, or lerping, which you may have used before." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:60 +msgid "Let us consider only the position, and a situation where we know that the previous physics tick X coordinate was 10 units, and the current physics tick X coordinate is 30 units." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:62 +msgid "Although the maths is explained here, you do not have to worry about the details, as this step will be performed for you. Under the hood, Godot may use more complex forms of interpolation, but linear interpolation is the easiest in terms of explanation." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:65 +msgid "The physics interpolation fraction" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:67 +msgid "If our physics ticks are happening 10 times per second (for this example), what happens if our rendered frame takes place at time 0.12 seconds? We can do some math to figure out where the object would be to obtain a smooth motion between the two ticks." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:69 +msgid "First of all, we have to calculate how far through the physics tick we want the object to be. If the last physics tick took place at 0.1 seconds, we are 0.02 seconds *(0.12 - 0.1)* through a tick that we know will take 0.1 seconds (10 ticks per second). The fraction through the tick is thus:" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:76 +msgid "This is called the **physics interpolation fraction**, and is handily calculated for you by Godot. It can be retrieved on any frame by calling :ref:`Engine.get_physics_interpolation_fraction`." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:79 +msgid "Calculating the interpolated position" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:81 +msgid "Once we have the interpolation fraction, we can insert it into a standard linear interpolation equation. The X coordinate would thus be:" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:87 +msgid "So substituting our ``x_prev`` as 10, and ``x_curr`` as 30:" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:95 +msgid "Let's break that down:" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:97 +msgid "We know the X starts from the coordinate on the previous tick (``x_prev``) which is 10 units." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:98 +msgid "We know that after the full tick, the difference between the current tick and the previous tick will have been added (``x_curr - x_prev``) (which is 20 units)." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:99 +msgid "The only thing we need to vary is the proportion of this difference we add, according to how far we are through the physics tick." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:101 +msgid "Although this example interpolates the position, the same thing can be done with the rotation and scale of objects. It is not necessary to know the details as Godot will do all this for you." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:104 +msgid "Smoothed transformations between physics ticks?" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:106 +msgid "Putting all this together shows that it should be possible to have a nice smooth estimation of the transform of objects between the current and previous physics tick." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:108 +msgid "But wait, you may have noticed something. If we are interpolating between the current and previous ticks, we are not estimating the position of the object *now*, we are estimating the position of the object in the past. To be exact, we are estimating the position of the object *between 1 and 2 ticks* into the past." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:111 +msgid "In the past" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:113 +msgid "What does this mean? This scheme does work, but it does mean we are effectively introducing a delay between what we see on the screen, and where the objects *should* be." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:115 +msgid "In practice, most people won't notice this delay, or rather, it is typically not *objectionable*. There are already significant delays involved in games, we just don't typically notice them. The most significant effect is there can be a slight delay to input, which can be a factor in fast twitch games. In some of these fast input situations, you may wish to turn off physics interpolation and use a different scheme, or use a high tick rate, which mitigates these delays." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:118 +msgid "Why look into the past? Why not predict the future?" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:120 +msgid "There is an alternative to this scheme, which is: instead of interpolating between the previous and current tick, we use maths to *extrapolate* into the future. We try to predict where the object *will be*, rather than show it where it was. This can be done and may be offered as an option in future, but there are some significant downsides:" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:122 +msgid "The prediction may not be correct, especially when an object collides with another object during the physics tick." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:123 +msgid "Where a prediction was incorrect, the object may extrapolate into an \"impossible\" position, like inside a wall." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:124 +msgid "Providing the movement speed is slow, these incorrect predictions may not be too much of a problem." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:125 +msgid "When a prediction was incorrect, the object may have to jump or snap back onto the corrected path. This can be visually jarring." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:128 +msgid "Fixed timestep interpolation" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:130 +msgid "In Godot this whole system is referred to as physics interpolation, but you may also hear it referred to as **\"fixed timestep interpolation\"**, as it is interpolating between objects moved with a fixed timestep (physics ticks per second). In some ways the second term is more accurate, because it can also be used to interpolate objects that are not driven by physics." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:132 +msgid "Although physics interpolation is usually a good choice, there are exceptions where you may choose not to use Godot's built-in physics interpolation (or use it in a limited fashion). An example category is internet multiplayer games. Multiplayer games often receive tick or timing based information from other players or a server and these may not coincide with local physics ticks, so a custom interpolation technique can often be a better fit." +msgstr "" + +#: ../../docs/:0 +msgid "Translation status" +msgstr "" diff --git a/sphinx/templates/tutorials/physics/interpolation/physics_interpolation_quick_start_guide.pot b/sphinx/templates/tutorials/physics/interpolation/physics_interpolation_quick_start_guide.pot new file mode 100644 index 0000000000..f824246fc0 --- /dev/null +++ b/sphinx/templates/tutorials/physics/interpolation/physics_interpolation_quick_start_guide.pot @@ -0,0 +1,41 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2022, 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 , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine 3.5\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_quick_start_guide.rst:4 +msgid "Quick start guide" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_quick_start_guide.rst:6 +msgid "Turn on physics interpolation: :ref:`ProjectSettings.physics/common/physics_interpolation`" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_quick_start_guide.rst:7 +msgid "Make sure you move objects and run your game logic in ``_physics_process()`` rather than ``_process()``. This includes moving objects directly *and indirectly* (by e.g. moving a parent, or using another mechanism to automatically move nodes)." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_quick_start_guide.rst:8 +msgid "Be sure to call :ref:`Node.reset_physics_interpolation` on nodes *after* you first position or teleport them, to prevent \"streaking\"" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_quick_start_guide.rst:9 +msgid "Temporarily try setting :ref:`ProjectSettings.physics/common/physics_fps` to 10 to see the difference with and without interpolation." +msgstr "" + +#: ../../docs/:0 +msgid "Translation status" +msgstr "" diff --git a/sphinx/templates/tutorials/physics/interpolation/using_physics_interpolation.pot b/sphinx/templates/tutorials/physics/interpolation/using_physics_interpolation.pot new file mode 100644 index 0000000000..c436bd1490 --- /dev/null +++ b/sphinx/templates/tutorials/physics/interpolation/using_physics_interpolation.pot @@ -0,0 +1,173 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2022, 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 , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine 3.5\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:4 +msgid "Using physics interpolation" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:5 +msgid "How do we incorporate physics interpolation into a Godot game? Are there any caveats?" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:7 +msgid "We have tried to make the system as easy to use as possible, and many existing games will work with few changes. That said there are some situations which require special treatment, and these will be described." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:10 +msgid "Turn on the physics interpolation setting" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:12 +msgid "The first step is to turn on physics interpolation in :ref:`ProjectSettings.physics/common/physics_interpolation`. You can now run your game." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:14 +msgid "It is likely that nothing looks hugely different, particularly if you are running physics at 60 TPS or a multiple of it. However, quite a bit more is happening behind the scenes." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:18 +msgid "To convert an existing game to use interpolation, it is highly recommended that you temporarily set :ref:`ProjectSettings.physics/common/physics_fps` to a low value such as 10, which will make interpolation problems more obvious." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:21 +msgid "Move (almost) all game logic from _process to _physics_process" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:23 +msgid "The most fundamental requirement for physics interpolation (which you may be doing already) is that you should be moving and performing game logic on your objects within ``_physics_process`` (which runs at a physics tick) rather than ``_process`` (which runs on a rendered frame). This means your scripts should typically be doing the bulk of their processing within ``_physics_process``, including responding to input and AI." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:25 +msgid "Setting the transform of objects only within physics ticks allows the automatic interpolation to deal with transforms *between* physics ticks, and ensures the game will run the same whatever machine it is run on. As a bonus, this also reduces CPU usage if the game is rendering at high FPS, since AI logic (for example) will no longer run on every rendered frame." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:27 +msgid "If you attempt to set the transform of interpolated objects *outside* the physics tick, the calculations for the interpolated position will be incorrect, and you will get jitter. This jitter may not be visible on your machine, but it *will* occur for some players. For this reason, setting the transform of interpolated objects should be avoided outside of the physics tick. Godot will attempt to produce warnings in the editor if this case is detected." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:29 +msgid "This is only a *soft-rule*. There are some occasions where you might want to teleport objects outside of the physics tick (for instance when starting a level, or respawning objects). Still, in general, you should be applying transforms from the physics tick." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:33 +msgid "Ensure that all indirect movement happens during physics ticks" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:35 +msgid "Consider that in Godot, Nodes can be moved not just directly in your own scripts, but also by automatic methods such as tweening, animation, and navigation. All these methods should also have their timing set to operate on the physics tick rather than each frame (\"idle\"), **if** you are using them to move objects (*these methods can also be used to control properties that are not interpolated*)." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:37 +msgid "Also consider that nodes can be moved not just by moving themselves, but also by moving parent nodes in the :ref:`SceneTree`. The movement of parents should therefore also only occur during physics ticks." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:40 +msgid "Choose a physics tick rate" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:42 +msgid "When using physics interpolation, the rendering is decoupled from physics, and you can choose any value that makes sense for your game. You are no longer limited to values that are multiples of the user's monitor refresh rate (for stutter-free gameplay if the target FPS is reached)." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:44 +msgid "As a rough guide:" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:1 +msgid "Low tick rates (10-30)" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:1 +msgid "Medium tick rates (30-60)" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:1 +msgid "High tick rates (60+)" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:1 +msgid "Better CPU performance" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:1 +msgid "Good physics behaviour in complex scenes" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:1 +msgid "Good with fast physics" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:1 +msgid "Add some delay to input" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:1 +msgid "Good for first person games" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:1 +msgid "Good for racing games" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:1 +msgid "Simple physics behaviour" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:54 +msgid "You can always change the tick rate as you develop, it is as simple as changing the project setting." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:57 +msgid "Call reset_physics_interpolation() when teleporting objects" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:59 +msgid "Most of the time, interpolation is what you want between two physics ticks. However, there is one situation in which it may *not* be what you want. That is when you are initially placing objects, or moving them to a new location. Here, you don't want a smooth motion between the two - you want an instantaneous move." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:61 +msgid "The solution to this is to call the :ref:`Node.reset_physics_interpolation` function. You should call this function on a Node *after* setting the position/transform. The rest is done for you automatically." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:63 +msgid "Even if you forget to call this, it is not usually a problem in most situations (especially at high tick rates). This is something you can easily leave to the polishing phase of your game. The worst that will happen is seeing a streaking motion for a frame or so when you move them - you will know when you need it!" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:65 +msgid "You should call ``reset_physics_interpolation()`` *after* setting the new position, rather than before. Otherwise, you will still see the unwanted streaking motion." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:68 +msgid "Testing and debugging tips" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:70 +msgid "Even if you intend to run physics at 60 TPS, in order to thoroughly test your interpolation and get the smoothest gameplay, it is highly recommended to temporarily set the physics tick rate to a low value such as 10 TPS." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:72 +msgid "The gameplay may not work perfectly, but it should enable you to more easily see cases where you should be calling :ref:`Node.reset_physics_interpolation`, or where you should be using your own custom interpolation on e.g. a :ref:`Camera`. Once you have these cases fixed, you can set the physics tick rate back to the desired setting." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:74 +msgid "The other great advantage to testing at a low tick rate is you can often notice other game systems that are synchronized to the physics tick and creating glitches which you may want to work around. Typical examples include setting animation blend values, which you may decide to set in ``_process()`` and interpolate manually." +msgstr "" + +#: ../../docs/:0 +msgid "Translation status" +msgstr "" diff --git a/sphinx/templates/tutorials/physics/kinematic_character_2d.pot b/sphinx/templates/tutorials/physics/kinematic_character_2d.pot index a7223eab6a..8e1b114b7b 100644 --- a/sphinx/templates/tutorials/physics/kinematic_character_2d.pot +++ b/sphinx/templates/tutorials/physics/kinematic_character_2d.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/physics/physics_introduction.pot b/sphinx/templates/tutorials/physics/physics_introduction.pot index c8b60cc171..644fa06f16 100644 --- a/sphinx/templates/tutorials/physics/physics_introduction.pot +++ b/sphinx/templates/tutorials/physics/physics_introduction.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/physics/ragdoll_system.pot b/sphinx/templates/tutorials/physics/ragdoll_system.pot index 51bd4e8e3c..32755cfc13 100644 --- a/sphinx/templates/tutorials/physics/ragdoll_system.pot +++ b/sphinx/templates/tutorials/physics/ragdoll_system.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/physics/ray-casting.pot b/sphinx/templates/tutorials/physics/ray-casting.pot index 4c00c0c9c1..e11b9f3197 100644 --- a/sphinx/templates/tutorials/physics/ray-casting.pot +++ b/sphinx/templates/tutorials/physics/ray-casting.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/physics/rigid_body.pot b/sphinx/templates/tutorials/physics/rigid_body.pot index 60444c4bbd..158b69ce0f 100644 --- a/sphinx/templates/tutorials/physics/rigid_body.pot +++ b/sphinx/templates/tutorials/physics/rigid_body.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/physics/soft_body.pot b/sphinx/templates/tutorials/physics/soft_body.pot index 9778801750..8f35940ff2 100644 --- a/sphinx/templates/tutorials/physics/soft_body.pot +++ b/sphinx/templates/tutorials/physics/soft_body.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/physics/using_area_2d.pot b/sphinx/templates/tutorials/physics/using_area_2d.pot index 426ee0e407..64ded2e5d9 100644 --- a/sphinx/templates/tutorials/physics/using_area_2d.pot +++ b/sphinx/templates/tutorials/physics/using_area_2d.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/physics/using_kinematic_body_2d.pot b/sphinx/templates/tutorials/physics/using_kinematic_body_2d.pot index d600e50dca..aa346c9e05 100644 --- a/sphinx/templates/tutorials/physics/using_kinematic_body_2d.pot +++ b/sphinx/templates/tutorials/physics/using_kinematic_body_2d.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/platform/android/android_in_app_purchases.pot b/sphinx/templates/tutorials/platform/android/android_in_app_purchases.pot index 8a47654907..a22ebcd9e3 100644 --- a/sphinx/templates/tutorials/platform/android/android_in_app_purchases.pot +++ b/sphinx/templates/tutorials/platform/android/android_in_app_purchases.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/platform/android/android_plugin.pot b/sphinx/templates/tutorials/platform/android/android_plugin.pot index 9de2b53fdd..6114ab7871 100644 --- a/sphinx/templates/tutorials/platform/android/android_plugin.pot +++ b/sphinx/templates/tutorials/platform/android/android_plugin.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/platform/android/index.pot b/sphinx/templates/tutorials/platform/android/index.pot index e2cac30e07..769ce7cbc7 100644 --- a/sphinx/templates/tutorials/platform/android/index.pot +++ b/sphinx/templates/tutorials/platform/android/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/platform/consoles.pot b/sphinx/templates/tutorials/platform/consoles.pot index fe95685ada..cb98f8d7bf 100644 --- a/sphinx/templates/tutorials/platform/consoles.pot +++ b/sphinx/templates/tutorials/platform/consoles.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -97,11 +97,19 @@ msgid "`Lone Wolf Technology `_ offers Switc msgstr "" #: ../../docs/tutorials/platform/consoles.rst:68 -msgid "`Pineapple Works `_ offers Switch, Xbox One and Xbox Series X/S porting and publishing of Godot games." +msgid "`Pineapple Works `_ offers Switch, Xbox One & Xbox Series X/S (GDK) porting and publishing of Godot games (GDScript/C#)." msgstr "" -#: ../../docs/tutorials/platform/consoles.rst:71 -msgid "If your company offers porting and/or publishing services for Godot games, feel free to `open an issue or pull request `_ to add your company to the list above." +#: ../../docs/tutorials/platform/consoles.rst:70 +msgid "`RAWRLAB games `_ offers Switch porting of Godot games." +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:72 +msgid "`mazette! games `_ offers Switch, Xbox One and Xbox Series X/S porting and publishing of Godot games." +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:75 +msgid "If your company offers porting, or porting *and* publishing services for Godot games, feel free to `open an issue or pull request `_ to add your company to the list above." msgstr "" #: ../../docs/:0 diff --git a/sphinx/templates/tutorials/platform/customizing_html5_shell.pot b/sphinx/templates/tutorials/platform/customizing_html5_shell.pot index 44e504d4e6..bebceb8579 100644 --- a/sphinx/templates/tutorials/platform/customizing_html5_shell.pot +++ b/sphinx/templates/tutorials/platform/customizing_html5_shell.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -77,7 +77,7 @@ msgid "``$GODOT_CONFIG``: A JavaScript object, containing the export options and msgstr "" #: ../../docs/tutorials/platform/customizing_html5_shell.rst:60 -msgid "The following optional placeholders will enable some extra features in your cusstom HTML template." +msgid "The following optional placeholders will enable some extra features in your custom HTML template." msgstr "" #: ../../docs/tutorials/platform/customizing_html5_shell.rst:62 diff --git a/sphinx/templates/tutorials/platform/html5_shell_classref.pot b/sphinx/templates/tutorials/platform/html5_shell_classref.pot index 05f95e7711..8f56ce8e68 100644 --- a/sphinx/templates/tutorials/platform/html5_shell_classref.pot +++ b/sphinx/templates/tutorials/platform/html5_shell_classref.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/platform/index.pot b/sphinx/templates/tutorials/platform/index.pot index 96a8e887a0..abf871fcad 100644 --- a/sphinx/templates/tutorials/platform/index.pot +++ b/sphinx/templates/tutorials/platform/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/platform/ios/index.pot b/sphinx/templates/tutorials/platform/ios/index.pot index 08122e1449..3bc81504f2 100644 --- a/sphinx/templates/tutorials/platform/ios/index.pot +++ b/sphinx/templates/tutorials/platform/ios/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/platform/ios/ios_plugin.pot b/sphinx/templates/tutorials/platform/ios/ios_plugin.pot index 747478aa60..38ce1fed67 100644 --- a/sphinx/templates/tutorials/platform/ios/ios_plugin.pot +++ b/sphinx/templates/tutorials/platform/ios/ios_plugin.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/platform/ios/plugins_for_ios.pot b/sphinx/templates/tutorials/platform/ios/plugins_for_ios.pot index a5c342d9f4..a017d265aa 100644 --- a/sphinx/templates/tutorials/platform/ios/plugins_for_ios.pot +++ b/sphinx/templates/tutorials/platform/ios/plugins_for_ios.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/platform/mobile_rendering_limitations.pot b/sphinx/templates/tutorials/platform/mobile_rendering_limitations.pot index d6d2ad247b..c4ef71dd56 100644 --- a/sphinx/templates/tutorials/platform/mobile_rendering_limitations.pot +++ b/sphinx/templates/tutorials/platform/mobile_rendering_limitations.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/platform/platform_html5.pot b/sphinx/templates/tutorials/platform/platform_html5.pot index 74ca231c0e..4604d910dd 100644 --- a/sphinx/templates/tutorials/platform/platform_html5.pot +++ b/sphinx/templates/tutorials/platform/platform_html5.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/editor/import_plugins.pot b/sphinx/templates/tutorials/plugins/editor/import_plugins.pot index fdff51052b..0ba1e22344 100644 --- a/sphinx/templates/tutorials/plugins/editor/import_plugins.pot +++ b/sphinx/templates/tutorials/plugins/editor/import_plugins.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/editor/index.pot b/sphinx/templates/tutorials/plugins/editor/index.pot index 3a360f0106..a8d66db36f 100644 --- a/sphinx/templates/tutorials/plugins/editor/index.pot +++ b/sphinx/templates/tutorials/plugins/editor/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/editor/inspector_plugins.pot b/sphinx/templates/tutorials/plugins/editor/inspector_plugins.pot index 781c91f5fd..379d319722 100644 --- a/sphinx/templates/tutorials/plugins/editor/inspector_plugins.pot +++ b/sphinx/templates/tutorials/plugins/editor/inspector_plugins.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/editor/installing_plugins.pot b/sphinx/templates/tutorials/plugins/editor/installing_plugins.pot index 2991b6a6c9..7bc521ba67 100644 --- a/sphinx/templates/tutorials/plugins/editor/installing_plugins.pot +++ b/sphinx/templates/tutorials/plugins/editor/installing_plugins.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/editor/making_main_screen_plugins.pot b/sphinx/templates/tutorials/plugins/editor/making_main_screen_plugins.pot index 09befa7028..f7fb03f533 100644 --- a/sphinx/templates/tutorials/plugins/editor/making_main_screen_plugins.pot +++ b/sphinx/templates/tutorials/plugins/editor/making_main_screen_plugins.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/editor/making_plugins.pot b/sphinx/templates/tutorials/plugins/editor/making_plugins.pot index 3924736c3f..f3a18adbed 100644 --- a/sphinx/templates/tutorials/plugins/editor/making_plugins.pot +++ b/sphinx/templates/tutorials/plugins/editor/making_plugins.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -57,137 +57,157 @@ msgid "The placeholder text in each field describes how it affects the plugin's msgstr "" #: ../../docs/tutorials/plugins/editor/making_plugins.rst:44 -msgid "To continue with the example, use the following values::" +msgid "To continue with the example, use the following values:" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:55 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:71 +msgid "Unchecking the ``Activate now?`` option in C# is always required because, like every other C# script, the EditorPlugin script needs to be compiled which requires building the project. After building the project the plugin can be enabled in the ``Plugins`` tab of ``Project Settings``." +msgstr "" + +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:76 msgid "You should end up with a directory structure like this:" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:59 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:80 msgid "``plugin.cfg`` is a simple INI file with metadata about your plugin. The name and description help people understand what it does. Your name helps you get properly credited for your work. The version number helps others know if they have an outdated version; if you are unsure on how to come up with the version number, check out `Semantic Versioning `_. The main script file will instruct Godot what your plugin does in the editor once it is active." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:68 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:89 msgid "The script file" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:70 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:91 msgid "Upon creation of the plugin, the dialog will automatically open the EditorPlugin script for you. The script has two requirements that you cannot change: it must be a ``tool`` script, or else it will not load properly in the editor, and it must inherit from :ref:`class_EditorPlugin`." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:77 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:98 msgid "In addition to the EditorPlugin script, any other GDScript that your plugin uses must *also* be a tool. Any GDScript without ``tool`` imported into the editor will act like an empty file!" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:81 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:102 msgid "It's important to deal with initialization and clean-up of resources. A good practice is to use the virtual function :ref:`_enter_tree() ` to initialize your plugin and :ref:`_exit_tree() ` to clean it up. Thankfully, the dialog generates these callbacks for you. Your script should look something like this:" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:126 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:147 msgid "This is a good template to use when creating new plugins." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:129 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:150 msgid "A custom node" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:131 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:152 msgid "Sometimes you want a certain behavior in many nodes, such as a custom scene or control that can be reused. Instancing is helpful in a lot of cases, but sometimes it can be cumbersome, especially if you're using it in many projects. A good solution to this is to make a plugin that adds a node with a custom behavior." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:139 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:160 msgid "Nodes added via an EditorPlugin are \"CustomType\" nodes. While they work with any scripting language, they have fewer features than :ref:`the Script Class system `. If you are writing GDScript or NativeScript, we recommend using Script Classes instead." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:144 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:165 msgid "To create a new node type, you can use the function :ref:`add_custom_type() ` from the :ref:`class_EditorPlugin` class. This function can add new types to the editor (nodes or resources). However, before you can create the type, you need a script that will act as the logic for the type. While that script doesn't have to use the ``tool`` keyword, it can be added so the script runs in the editor." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:151 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:172 msgid "For this tutorial, we'll create a simple button that prints a message when clicked. For that, we'll need a simple script that extends from :ref:`class_Button`. It could also extend :ref:`class_BaseButton` if you prefer:" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:189 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:210 msgid "That's it for our basic button. You can save this as ``my_button.gd`` inside the plugin folder. You'll also need a 16×16 icon to show in the scene tree. If you don't have one, you can grab the default one from the engine and save it in your `addons/my_custom_node` folder as `icon.png`, or use the default Godot logo (`preload(\"res://icon.png\")`). You can also use SVG icons if desired." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:197 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:218 msgid "Now, we need to add it as a custom type so it shows on the **Create New Node** dialog. For that, change the ``custom_node.gd`` script to the following:" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:245 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:266 msgid "With that done, the plugin should already be available in the plugin list in the **Project Settings**, so activate it as explained in `Checking the results`_." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:248 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:269 msgid "Then try it out by adding your new node:" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:252 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:273 msgid "When you add the node, you can see that it already has the script you created attached to it. Set a text to the button, save and run the scene. When you click the button, you can see some text in the console:" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:259 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:280 msgid "A custom dock" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:261 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:282 msgid "Sometimes, you need to extend the editor and add tools that are always available. An easy way to do it is to add a new dock with a plugin. Docks are just scenes based on Control, so they are created in a way similar to usual GUI scenes." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:265 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:286 msgid "Creating a custom dock is done just like a custom node. Create a new ``plugin.cfg`` file in the ``addons/my_custom_dock`` folder, then add the following content to it:" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:290 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:311 msgid "Then create the script ``custom_dock.gd`` in the same folder. Fill it with the :ref:`template we've seen before ` to get a good start." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:294 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:315 msgid "Since we're trying to add a new custom dock, we need to create the contents of the dock. This is nothing more than a standard Godot scene: just create a new scene in the editor then edit it." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:298 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:319 msgid "For an editor dock, the root node **must** be a :ref:`Control ` or one of its child classes. For this tutorial, you can create a single button. The name of the root node will also be the name that appears on the dock tab, so be sure to give it a short and descriptive name. Also, don't forget to add some text to your button." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:306 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:327 msgid "Save this scene as ``my_dock.tscn``. Now, we need to grab the scene we created then add it as a dock in the editor. For this, you can rely on the function :ref:`add_control_to_dock() ` from the :ref:`EditorPlugin ` class." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:311 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:332 msgid "You need to select a dock position and define the control to add (which is the scene you just created). Don't forget to **remove the dock** when the plugin is deactivated. The script could look like this:" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:372 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:393 msgid "Note that, while the dock will initially appear at its specified position, the user can freely change its position and save the resulting layout." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:376 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:397 msgid "Checking the results" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:378 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:399 msgid "It's now time to check the results of your work. Open the **Project Settings** and click on the **Plugins** tab. Your plugin should be the only one on the list. If it is not showing, click on the **Update** button in the top-right corner." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:385 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:406 msgid "You can see the plugin is inactive on the **Status** column; click on the status to select **Active**. The dock should become visible before you even close the settings window. You should now have a custom dock:" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:392 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:413 msgid "Going beyond" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:394 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:415 msgid "Now that you've learned how to make basic plugins, you can extend the editor in several ways. Lots of functionality can be added to the editor with GDScript; it is a powerful way to create specialized editors without having to delve into C++ modules." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:399 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:420 msgid "You can make your own plugins to help yourself and share them in the `Asset Library `_ so that people can benefit from your work." msgstr "" +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:427 +msgid "Registering autoloads/singletons in plugins" +msgstr "" + +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:429 +msgid "It is possible for editor plugins to automatically register :ref:`autoloads ` when the plugin is enabled. This also includes unregistering the autoload when the plugin is disabled." +msgstr "" + +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:433 +msgid "This makes setting up plugins faster for users, as they no longer have to manually add autoloads to their project settings if your editor plugin requires the use of an autoload." +msgstr "" + +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:437 +msgid "Use the following code to register a singleton from an editor plugin:" +msgstr "" + #: ../../docs/:0 msgid "Translation status" msgstr "" diff --git a/sphinx/templates/tutorials/plugins/editor/spatial_gizmos.pot b/sphinx/templates/tutorials/plugins/editor/spatial_gizmos.pot index 173ed3890d..88b6b6fa8d 100644 --- a/sphinx/templates/tutorials/plugins/editor/spatial_gizmos.pot +++ b/sphinx/templates/tutorials/plugins/editor/spatial_gizmos.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/editor/visual_shader_plugins.pot b/sphinx/templates/tutorials/plugins/editor/visual_shader_plugins.pot index 449d2431c2..33643ee512 100644 --- a/sphinx/templates/tutorials/plugins/editor/visual_shader_plugins.pot +++ b/sphinx/templates/tutorials/plugins/editor/visual_shader_plugins.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/index.pot b/sphinx/templates/tutorials/plugins/index.pot index 86e4a04cb6..50fd14f18d 100644 --- a/sphinx/templates/tutorials/plugins/index.pot +++ b/sphinx/templates/tutorials/plugins/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/running_code_in_the_editor.pot b/sphinx/templates/tutorials/plugins/running_code_in_the_editor.pot index 16d76bf091..49b615180a 100644 --- a/sphinx/templates/tutorials/plugins/running_code_in_the_editor.pot +++ b/sphinx/templates/tutorials/plugins/running_code_in_the_editor.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/rendering/gles2_gles3_differences.pot b/sphinx/templates/tutorials/rendering/gles2_gles3_differences.pot index f27478eeae..3f70f80dce 100644 --- a/sphinx/templates/tutorials/rendering/gles2_gles3_differences.pot +++ b/sphinx/templates/tutorials/rendering/gles2_gles3_differences.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -209,143 +209,143 @@ msgid "Blend shapes" msgstr "" #: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:127 -msgid "Blend shapes are not supported in GLES2." +msgid "In GLES2, blend shapes are implemented on the CPU instead of the GPU. Accordingly, they may not perform as well as blend shapes in GLES3. To avoid performance issues when using blend shapes in GLES2, try to minimize the number of blend shapes that are updated each frame." msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:130 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:133 msgid "Shading language" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:132 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:135 msgid "GLES3 provides many built-in functions that GLES2 does not. Below is a list of functions that are not available or are have limited support in GLES2." msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:135 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:138 msgid "For a complete list of built-in GLSL functions see the :ref:`Shading Language doc `." msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:138 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:141 msgid "Function" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:140 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:143 msgid "vec_type **modf** ( vec_type x, out vec_type i )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:142 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:145 msgid "vec_int_type **floatBitsToInt** ( vec_type x )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:144 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:147 msgid "vec_uint_type **floatBitsToUint** ( vec_type x )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:146 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:149 msgid "vec_type **intBitsToFloat** ( vec_int_type x )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:148 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:151 msgid "vec_type **uintBitsToFloat** ( vec_uint_type x )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:150 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:153 msgid "ivec2 **textureSize** ( sampler2D_type s, int lod )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:150 -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:152 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:153 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:155 msgid "See workaround below" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:152 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:155 msgid "ivec2 **textureSize** ( samplerCube s, int lod )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:154 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:157 msgid "vec4_type **texture** ( sampler_type s, vec_type uv [, float bias] )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:154 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:157 msgid "**bias** not available in vertex shader" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:156 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:159 msgid "vec4_type **textureProj** ( sampler_type s, vec_type uv [, float bias] )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:158 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:161 msgid "vec4_type **textureLod** ( sampler_type s, vec_type uv, float lod )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:158 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:161 msgid "Only available in vertex shader on some hardware" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:160 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:163 msgid "vec4_type **textureProjLod** ( sampler_type s, vec_type uv, float lod )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:162 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:165 msgid "vec4_type **textureGrad** ( sampler_type s, vec_type uv, vec_type dPdx, vec_type dPdy )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:164 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:167 msgid "vec_type **dFdx** ( vec_type p )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:166 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:169 msgid "vec_type **dFdy** ( vec_type p )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:168 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:171 msgid "vec_type **fwidth** ( vec_type p )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:171 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:174 msgid "Functions not in GLES2's GLSL were added with Godots own shader standard library. These functions may perform worse in GLES2 compared to GLES3." msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:174 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:177 msgid "``textureSize()`` workaround" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:176 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:179 msgid "GLES2 does not support ``textureSize()``. You can get the size of a texture the old fashioned way by passing in a uniform with the texture size yourself." msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:192 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:195 msgid "Built in variables and render modes" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:194 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:197 msgid "Godot also provides many built-in variables and render modes. Some cannot be supported in GLES2. Below is a list of built-in variables and render modes that, when written to, will have no effect or could even cause issues when using the GLES2 backend." msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:199 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:202 msgid "Variable / Render Mode" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:201 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:204 msgid "``ensure_correct_normals``" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:203 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:206 msgid "``INSTANCE_ID``" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:205 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:208 msgid "``DEPTH``" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:207 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:210 msgid "``ANISOTROPY``" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:209 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:212 msgid "``ANISOTROPY_FLOW``" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:211 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:214 msgid "``SSS_STRENGTH``" msgstr "" diff --git a/sphinx/templates/tutorials/rendering/index.pot b/sphinx/templates/tutorials/rendering/index.pot index 29be6124cc..c0c5343895 100644 --- a/sphinx/templates/tutorials/rendering/index.pot +++ b/sphinx/templates/tutorials/rendering/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/rendering/jitter_stutter.pot b/sphinx/templates/tutorials/rendering/jitter_stutter.pot index 00117a5990..5bab01c6fd 100644 --- a/sphinx/templates/tutorials/rendering/jitter_stutter.pot +++ b/sphinx/templates/tutorials/rendering/jitter_stutter.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/rendering/multiple_resolutions.pot b/sphinx/templates/tutorials/rendering/multiple_resolutions.pot index 30dd0966f6..73a45ff8b9 100644 --- a/sphinx/templates/tutorials/rendering/multiple_resolutions.pot +++ b/sphinx/templates/tutorials/rendering/multiple_resolutions.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -128,293 +128,281 @@ msgstr "" msgid "**Stretch Mode = Disabled** (default): No stretching happens. One unit in the scene corresponds to one pixel on the screen. In this mode, the **Stretch Aspect** setting has no effect." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:133 -msgid "This is a good option if you want full control over every screen pixel, and is probably the best option for 3D games." +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:135 +msgid "**Stretch Mode = 2D**: In this mode, the base size specified in width and height in the project settings is stretched to cover the whole screen (taking the **Stretch Aspect** setting into account). This means that everything is rendered directly at the target resolution. 3D is unaffected, while in 2D, there is no longer a 1:1 correspondence between sprite pixels and screen pixels, which may result in scaling artifacts." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:138 -msgid "**Stretch Mode = 2D**: In this mode, the base size specified in width and height in the project settings is stretched to cover the whole screen (taking the **Stretch Aspect** setting into account). This means that everything is rendered directly at the target resolution. 3D is largely unaffected, while in 2D, there is no longer a 1:1 correspondence between sprite pixels and screen pixels, which may result in scaling artifacts." -msgstr "" - -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:146 -msgid "This is a good option if your 2D artwork has a sufficiently high resolution and does not require pixel-perfect rendering. Consider enabling texture filtering and mipmapping on your 2D textures and fonts." -msgstr "" - -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:153 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:145 msgid "**Stretch Mode = Viewport**: Viewport scaling means that the size of the root :ref:`Viewport ` is set precisely to the base size specified in the Project Settings' **Display** section. The scene is rendered to this viewport first. Finally, this viewport is scaled to fit the screen (taking the **Stretch Aspect** setting into account)." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:160 -msgid "This mode is useful when working with pixel-precise games, or for the sake of rendering to a lower resolution to improve performance." -msgstr "" - -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:166 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:155 msgid "Stretch Aspect" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:168 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:157 msgid "The second setting is the stretch aspect. Note that this only takes effect if **Stretch Mode** is set to something other than **Disabled**." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:171 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:160 msgid "In the animations below, you will notice gray and black areas. The black areas are added by the engine and cannot be drawn into. The gray areas are part of your scene, and can be drawn to. The gray areas correspond to the region outside the blue frame you see in the 2D editor." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:176 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:165 msgid "**Stretch Aspect = Ignore**: Ignore the aspect ratio when stretching the screen. This means that the original resolution will be stretched to exactly fill the screen, even if it's wider or narrower. This may result in nonuniform stretching: things looking wider or taller than designed." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:184 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:173 msgid "**Stretch Aspect = Keep**: Keep aspect ratio when stretching the screen. This means that the viewport retains its original size regardless of the screen resolution, and black bars will be added to the top/bottom of the screen (\"letterboxing\") or the sides (\"pillarboxing\")." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:190 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:179 msgid "This is a good option if you know the aspect ratio of your target devices in advance, or if you don't want to handle different aspect ratios." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:196 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:185 msgid "**Stretch Aspect = Keep Width**: Keep aspect ratio when stretching the screen. If the screen is wider than the base size, black bars are added at the left and right (pillarboxing). But if the screen is taller than the base resolution, the viewport will be grown in the vertical direction (and more content will be visible to the bottom). You can also think of this as \"Expand Vertically\"." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:203 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:192 msgid "This is usually the best option for creating GUIs or HUDs that scale, so some controls can be anchored to the bottom (:ref:`doc_size_and_anchors`)." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:209 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:198 msgid "**Stretch Aspect = Keep Height**: Keep aspect ratio when stretching the screen. If the screen is taller than the base size, black bars are added at the top and bottom (letterboxing). But if the screen is wider than the base resolution, the viewport will be grown in the horizontal direction (and more content will be visible to the right). You can also think of this as \"Expand Horizontally\"." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:216 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:205 msgid "This is usually the best option for 2D games that scroll horizontally (like runners or platformers)." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:221 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:210 msgid "**Stretch Aspect = Expand**: Keep aspect ratio when stretching the screen, but keep neither the base width nor height. Depending on the screen aspect ratio, the viewport will either be larger in the horizontal direction (if the screen is wider than the base size) or in the vertical direction (if the screen is taller than the original size)." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:232 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:221 msgid "To support both portrait and landscape mode with a similar automatically determined scale factor, set your project's base resolution to be a *square* (1:1 aspect ratio) instead of a rectangle. For instance, if you wish to design for 1280×720 as the base resolution but wish to support both portrait and landscape mode, use 720×720 as the project's base window size in the Project Settings." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:239 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:228 msgid "To allow the user to choose their preferred screen orientation at run-time, remember to set **Display > Window > Handheld > Orientation** to ``sensor``." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:243 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:232 msgid "Stretch Shrink" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:245 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:234 msgid "The **Shrink** setting allows you to add an extra scaling factor on top of what the **Stretch** options above already provide. The default value of 1 means that no scaling occurs." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:249 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:238 msgid "If, for example, you set **Shrink** to 4 and leave **Stretch Mode** on **Disabled**, each unit in your scene will correspond to 4×4 pixels on the screen." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:253 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:242 msgid "If **Stretch Mode** is set to something other than **Disabled**, the size of the root viewport is scaled down by the **Shrink** factor, and pixels in the output are scaled up by the same amount. This is rarely useful for 2D games, but can be used to increase performance in 3D games by rendering them at a lower resolution." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:260 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:249 msgid "From scripts" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:262 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:251 msgid "To configure stretching at runtime from a script, use the ``get_tree().set_screen_stretch()`` method (see :ref:`SceneTree.set_screen_stretch() `)." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:267 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:256 msgid "Common use case scenarios" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:269 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:258 msgid "The following settings are recommended to support multiple resolutions and aspect ratios well." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:273 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:262 msgid "Desktop game" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:275 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:264 msgid "**Non-pixel art:**" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:277 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:266 msgid "Set the base window width to ``1920`` and window height to ``1080``. If you have a display smaller than 1920×1080, set **Test Width** and **Test Height** to lower values to make the window smaller when the project starts." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:280 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:269 msgid "Alternatively, if you're targeting high-end devices primarily, set the base window width to ``3840`` and window height to ``2160``. This allows you to provide higher resolution 2D assets, resulting in crisper visuals at the cost of higher memory usage and file sizes. Note that this will make non-mipmapped textures grainy on low resolution devices, so make sure to follow the instructions described in :ref:`doc_multiple_resolutions_reducing_aliasing_on_downsampling`." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:287 -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:334 -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:353 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:276 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:323 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:342 msgid "Set the stretch mode to ``2d``." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:288 -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:335 -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:354 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:277 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:324 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:343 msgid "Set the stretch aspect to ``expand``. This allows for supporting multiple aspect ratios and makes better use of tall smartphone displays (such as 18:9 or 19:9 aspect ratios)." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:290 -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:337 -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:356 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:279 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:326 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:345 msgid "Configure Control nodes' anchors to snap to the correct corners using the **Layout** menu." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:292 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:281 msgid "**Pixel art:**" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:294 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:283 msgid "Set the base window size to the viewport size you intend to use. Most pixel art games use viewport sizes between 256×224 and 640×480. Higher viewport sizes will require using higher resolution artwork, unless you intend to show more of the game world at a given time." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:298 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:287 msgid "Set the stretch mode to ``viewport``." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:299 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:288 msgid "Set the stretch aspect to ``keep`` to enforce a single aspect ratio (with black bars). As an alternative, you can set the stretch aspect to ``expand`` to support multiple aspect ratios." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:302 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:291 msgid "If using the ``expand`` stretch aspect, Configure Control nodes' anchors to snap to the correct corners using the **Layout** menu." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:307 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:296 msgid "The ``viewport`` stretch mode provides low-resolution rendering that is then stretched to the final window size. If you are OK with sprites being able to move or rotate in \"sub-pixel\" positions or wish to have a high resolution 3D viewport, you should use the ``2d`` stretch mode instead of the ``viewport`` stretch mode." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:313 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:302 msgid "Godot currently doesn't have a way to enforce integer scaling when using the ``2d`` or ``viewport`` stretch mode, which means pixel art may look bad if the final window size is not a multiple of the base window size. To fix this, use an add-on such as the `Integer Resolution Handler `__." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:319 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:308 msgid "Mobile game in landscape mode" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:321 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:310 msgid "Godot is configured to use landscape mode by default. This means you don't need to change the display orientation project setting." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:324 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:313 msgid "Set the base window width to ``1280`` and window height to ``720``." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:325 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:314 msgid "Alternatively, if you're targeting high-end devices primarily, set the base window width to ``1920`` and window height to ``1080``. This allows you to provide higher resolution 2D assets, resulting in crisper visuals at the cost of higher memory usage and file sizes. Many devices have even higher resolution displays (1440p), but the difference with 1080p is barely visible given the small size of smartphone displays. Note that this will make non-mipmapped textures grainy on low resolution devices, so make sure to follow the instructions described in :ref:`doc_multiple_resolutions_reducing_aliasing_on_downsampling`." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:340 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:329 msgid "Mobile game in portrait mode" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:342 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:331 msgid "Set the base window width to ``720`` and window height to ``1080``." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:343 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:332 msgid "Alternatively, if you're targeting high-end devices primarily, set the base window width to ``1080`` and window height to ``1920``. This allows you to provide higher resolution 2D assets, resulting in crisper visuals at the cost of higher memory usage and file sizes. Many devices have even higher resolution displays (1440p), but the difference with 1080p is barely visible given the small size of smartphone displays. Note that this will make non-mipmapped textures grainy on low resolution devices, so make sure to follow the instructions described in :ref:`doc_multiple_resolutions_reducing_aliasing_on_downsampling`." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:352 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:341 msgid "Set **Display > Window > Handheld > Orientation** to ``portrait``." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:359 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:348 msgid "Non-game application" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:361 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:350 msgid "Set the base window width and height to the smallest window size that you intend to target. This is not required, but this ensures that you design your UI with small window sizes in mind." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:363 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:352 msgid "Keep the stretch mode to its default value, ``disabled``." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:364 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:353 msgid "Keep the stretch aspect to its default value, ``ignore`` (its value won't be used since the stretch mode is ``disabled``)." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:366 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:355 msgid "You can define a minimum window size by setting ``OS.min_window_size`` in a script's ``_ready()`` function. This prevents the user from resizing the application below a certain size, which could break the UI layout." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:372 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:361 msgid "Godot doesn't support manually overriding the 2D scale factor yet, so it is not possible to have hiDPI support in non-game applications. Due to this, it is recommended to leave **Allow Hidpi** disabled in non-game applications to allow for the OS to use its low-DPI fallback." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:378 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:367 msgid "hiDPI support" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:380 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:369 msgid "By default, Godot projects aren't considered DPI-aware by the operating system. This is done to improve performance on low-end systems, since the operating system's DPI fallback scaling will be faster than letting the application scale itself (even when using the ``viewport`` stretch mode)." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:385 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:374 msgid "However, the OS-provided DPI fallback scaling doesn't play well with fullscreen mode. If you want crisp visuals on hiDPI displays or if project uses fullscreen, it's recommended to enable **Display > Window > Dpi > Allow Hidpi** in the Project Settings." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:390 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:379 msgid "**Allow Hidpi** is only effective on Windows and macOS. It's ignored on all other platforms." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:395 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:384 msgid "The Godot editor itself is always marked as DPI-aware. Running the project from the editor will only be DPI-aware if **Allow Hidpi** is enabled in the Project Settings." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:402 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:391 msgid "Reducing aliasing on downsampling" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:404 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:393 msgid "If the game has a very high base resolution (e.g. 3840×2160), aliasing might appear when downsampling to something considerably lower like 1280×720. Aliasing can be made less visible by shrinking all images by a factor of 2 upon loading. This can be done by calling the method below before the game data is loaded::" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:412 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:401 msgid "Alternatively, you can also enable mipmaps on all your 2D textures. However, enabling mipmaps will increase memory usage which may be problematic on low-end mobile devices." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:417 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:406 msgid "Handling aspect ratios" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:419 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:408 msgid "Once scaling for different resolutions is accounted for, make sure that your *user interface* also scales for different aspect ratios. This can be done using :ref:`anchors ` and/or :ref:`containers `." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:425 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:414 msgid "Field of view scaling" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:427 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:416 msgid "The 3D Camera node's **Keep Aspect** property defaults to the **Keep Height** scaling mode (also called *Hor+*). This is usually the best value for desktop games and mobile games in landscape mode, as widescreen displays will automatically use a wider field of view." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:432 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:421 msgid "However, if your 3D game is intended to be played in portrait mode, it may make more sense to use **Keep Width** instead (also called *Vert-*). This way, smartphones with an aspect ratio taller than 16:9 (e.g. 19:9) will use a *taller* field of view, which is more logical here." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:438 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:427 msgid "Scaling 2D and 3D elements differently using Viewports" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:440 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:429 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:445 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:434 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 ViewportContainer or TextureRect node. There will effectively be two viewports in the final project. One upside of using TextureRect over ViewportContainer is that it allows enable linear filtering. This makes scaled 3D viewports look better in many cases." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:452 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:441 msgid "See the `3D viewport scaling demo `__ for examples." msgstr "" diff --git a/sphinx/templates/tutorials/rendering/viewports.pot b/sphinx/templates/tutorials/rendering/viewports.pot index a5be86fad3..a19e1c5a44 100644 --- a/sphinx/templates/tutorials/rendering/viewports.pot +++ b/sphinx/templates/tutorials/rendering/viewports.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/c_sharp/c_sharp_basics.pot b/sphinx/templates/tutorials/scripting/c_sharp/c_sharp_basics.pot index 7b69dea204..d95bcf57a6 100644 --- a/sphinx/templates/tutorials/scripting/c_sharp/c_sharp_basics.pot +++ b/sphinx/templates/tutorials/scripting/c_sharp/c_sharp_basics.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -49,7 +49,7 @@ msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:46 -msgid "Install the latest stable version of `.NET Core SDK `__ (3.1 as of writing)." +msgid "Install the latest stable version of the `.NET SDK `__, previously known as the .NET Core SDK." msgstr "" #: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:50 @@ -57,262 +57,276 @@ msgid "From Godot 3.2.3 onwards, installing Mono SDK is not a requirement anymor msgstr "" #: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:53 -msgid "Godot bundles the parts of Mono needed to run already compiled games, however Godot does not include the tools required to build and compile games, such as MSBuild. These tools need to be installed separately. The required tools are included in the .NET Core SDK. MSBuild is also included in the Mono SDK, but it can't build C# projects with the new ``csproj`` format, therefore .NET Core SDK is required for Godot 3.2.3+." +msgid "Godot bundles the parts of Mono needed to run already compiled games. However, Godot does not bundle the tools required to build and compile games, such as MSBuild and the C# compiler. These are included in the .NET SDK, which needs to be installed separately." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:60 -msgid "In summary, you must have installed .NET Core SDK **and** the Mono-enabled version of Godot." +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:58 +msgid "In summary, you must have installed the .NET SDK **and** the Mono-enabled version of Godot." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:64 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:62 msgid "Additional notes" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:66 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:64 msgid "Be sure to install the 64-bit version of the SDK(s) if you are using the 64-bit version of Godot." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:69 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:67 msgid "If you are building Godot from source, install the latest stable version of `Mono `__, and make sure to follow the steps to enable Mono support in your build as outlined in the :ref:`doc_compiling_with_mono` page." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:75 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:73 msgid "Configuring an external editor" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:77 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:75 msgid "C# support in Godot's built-in script editor is minimal. Consider using an external IDE or editor, such as `Visual Studio Code `__ or MonoDevelop. These provide autocompletion, debugging, and other useful features for C#. To select an external editor in Godot, click on **Editor → Editor Settings** and scroll down to **Mono**. Under **Mono**, click on **Editor**, and select your external editor of choice. Godot currently supports the following external editors:" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:86 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:84 msgid "Visual Studio 2019" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:87 -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:111 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:85 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:109 msgid "Visual Studio Code" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:88 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:86 msgid "MonoDevelop" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:89 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:87 msgid "Visual Studio for Mac" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:90 -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:95 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:88 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:93 msgid "JetBrains Rider" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:92 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:90 msgid "See the following sections for how to configure an external editor:" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:97 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:95 msgid "After reading the \"Prerequisites\" section, you can download and install `JetBrains Rider `__." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:100 -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:116 -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:151 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:98 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:114 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:150 msgid "In Godot's **Editor → Editor Settings** menu:" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:102 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:100 msgid "Set **Mono** -> **Editor** -> **External Editor** to **JetBrains Rider**." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:103 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:101 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:117 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:153 msgid "Set **Mono** -> **Builds** -> **Build Tool** to **dotnet CLI**." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:105 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:103 msgid "In Rider:" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:107 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:105 msgid "Set **MSBuild version** to **.NET Core**." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:108 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:106 msgid "Install the **Godot support** plugin." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:113 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:111 msgid "After reading the \"Prerequisites\" section, you can download and install `Visual Studio Code `__ (aka VS Code)." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:118 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:116 msgid "Set **Mono** -> **Editor** -> **External Editor** to **Visual Studio Code**." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:120 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:119 msgid "In Visual Studio Code:" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:122 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:121 msgid "Install the `C# `__ extension." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:123 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:122 msgid "Install the `Mono Debug `__ extension." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:124 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:123 msgid "Install the `C# Tools for Godot `__ extension." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:126 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:125 msgid "If you are using Linux you need to install the `Mono SDK `__ for the C# tools plugin to work." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:130 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:129 msgid "To configure a project for debugging open the Godot project folder in VS Code. Go to the Run tab and click on **Add Configuration...**. Select **C# Godot** from the dropdown menu. Open the ``tasks.json`` and ``launch.json`` files that were created. Change the executable setting in ``launch.json`` and command settings in ``tasks.json`` to your Godot executable path. Now, when you start the debugger in VS Code, your Godot project will run." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:138 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:137 msgid "Visual Studio (Windows only)" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:140 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:139 msgid "Download and install the latest version of `Visual Studio `__. Visual Studio will include the required SDKs if you have the correct workloads selected, so you don't need to manually install the things listed in the \"Prerequisites\" section." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:146 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:145 msgid "While installing Visual Studio, select these workloads:" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:148 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:147 msgid "Mobile development with .NET" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:149 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:148 msgid ".NET Core cross-platform development" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:153 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:152 msgid "Set **Mono** -> **Editor** -> **External Editor** to **Visual Studio**." msgstr "" #: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:155 -msgid "Next, you need to download the Godot Visual Studio extension from github `here `__. Double click on the downloaded file and follow the installation process." +msgid "Next, you can download the Godot Visual Studio extension from github `here `__. Double click on the downloaded file and follow the installation process." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:161 -msgid "Creating a C# script" +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:159 +msgid "The option to debug your game in Visual Studio may not appear after installing the extension. To enable debugging, there is a `workaround for Visual Studio 2019 `__. There is `a separate issue about this problem in Visual Studio 2022 `__." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:163 -msgid "After you successfully set up C# for Godot, you should see the following option when selecting **Attach Script** in the context menu of a node in your scene:" +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:165 +msgid "If you see an error like \"Unable to find package Godot.NET.Sdk\", your NuGet configuration may be incorrect and need to be fixed." msgstr "" #: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:168 +msgid "A simple way to fix the NuGet configuration file is to regenerate it. In a file explorer window, go to ``%AppData%\\NuGet``. Rename or delete the ``NuGet.Config`` file. When you build your Godot project again, the file will be automatically created with default values." +msgstr "" + +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:174 +msgid "Creating a C# script" +msgstr "" + +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:176 +msgid "After you successfully set up C# for Godot, you should see the following option when selecting **Attach Script** in the context menu of a node in your scene:" +msgstr "" + +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:181 msgid "Note that while some specifics change, most concepts work the same when using C# for scripting. If you're new to Godot, you may want to follow the tutorials on :ref:`doc_scripting` at this point. While some places in the documentation still lack C# examples, most concepts can be transferred easily from GDScript." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:175 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:188 msgid "Project setup and workflow" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:177 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:190 msgid "When you create the first C# script, Godot initializes the C# project files for your Godot project. This includes generating a C# solution (``.sln``) and a project file (``.csproj``), as well as some utility files and folders (``.mono`` and ``Properties/AssemblyInfo.cs``). All of these but ``.mono`` are important and should be committed to your version control system. ``.mono`` can be safely added to the ignore list of your VCS. When troubleshooting, it can sometimes help to delete the ``.mono`` folder and let it regenerate." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:187 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:200 msgid "Example" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:189 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:202 msgid "Here's a blank C# script with some comments to demonstrate how it works." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:216 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:229 msgid "As you can see, functions normally in global scope in GDScript like Godot's ``print`` function are available in the ``GD`` class which is part of the ``Godot`` namespace. For a list of methods in the ``GD`` class, see the class reference pages for :ref:`@GDScript ` and :ref:`@GlobalScope `." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:223 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:236 msgid "Keep in mind that the class you wish to attach to your node should have the same name as the ``.cs`` file. Otherwise, you will get the following error and won't be able to run the scene: *\"Cannot find class XXX for script res://XXX.cs\"*" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:229 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:242 msgid "General differences between C# and GDScript" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:231 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:244 msgid "The C# API uses ``PascalCase`` instead of ``snake_case`` in GDScript/C++. Where possible, fields and getters/setters have been converted to properties. In general, the C# Godot API strives to be as idiomatic as is reasonably possible." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:235 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:248 msgid "For more information, see the :ref:`doc_c_sharp_differences` page." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:239 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:252 msgid "You need to (re)build the project assemblies whenever you want to see new exported variables or signals in the editor. This build can be manually triggered by clicking the word **Build** in the top right corner of the editor. You can also click **Mono** at the bottom of the editor window to reveal the Mono panel, then click the **Build Project** button." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:245 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:258 msgid "You will also need to rebuild the project assemblies to apply changes in \"tool\" scripts." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:249 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:262 msgid "Current gotchas and known issues" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:251 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:264 msgid "As C# support is quite new in Godot, there are some growing pains and things that need to be ironed out. Below is a list of the most important issues you should be aware of when diving into C# in Godot, but if in doubt, also take a look over the official `issue tracker for Mono issues `_." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:257 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:270 msgid "Writing editor plugins is possible, but it is currently quite convoluted." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:258 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:271 msgid "State is currently not saved and restored when hot-reloading, with the exception of exported variables." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:260 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:273 msgid "Attached C# scripts should refer to a class that has a class name that matches the file name." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:262 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:275 msgid "There are some methods such as ``Get()``/``Set()``, ``Call()``/``CallDeferred()`` and signal connection method ``Connect()`` that rely on Godot's ``snake_case`` API naming conventions. So when using e.g. ``CallDeferred(\"AddChild\")``, ``AddChild`` will not work because the API is expecting the original ``snake_case`` version ``add_child``. However, you can use any custom properties or methods without this limitation." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:270 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:283 msgid "Exporting Mono projects is supported for desktop platforms (Linux, Windows and macOS), Android, HTML5, and iOS. The only platform not supported yet is UWP." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:274 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:287 msgid "Performance of C# in Godot" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:276 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:289 msgid "According to some preliminary `benchmarks `_, the performance of C# in Godot — while generally in the same order of magnitude — is roughly **~4×** that of GDScript in some naive cases. C++ is still a little faster; the specifics are going to vary according to your use case. GDScript is likely fast enough for most general scripting workloads. C# is faster, but requires some expensive marshalling when talking to Godot." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:284 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:297 msgid "Using NuGet packages in Godot" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:286 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:299 msgid "`NuGet `_ packages can be installed and used with Godot, as with any C# project. Many IDEs are able to add packages directly. They can also be added manually by adding the package reference in the ``.csproj`` file located in the project root:" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:300 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:313 msgid "As of Godot 3.2.3, Godot automatically downloads and sets up newly added NuGet packages the next time it builds the project." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:304 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:317 msgid "Profiling your C# code" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:306 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:319 msgid "`Mono log profiler `_ is available for Linux and macOS. Due to a Mono change, it does not work on Windows currently." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:307 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:320 msgid "External Mono profiler like `JetBrains dotTrace `_ can be used as described `here `_." msgstr "" diff --git a/sphinx/templates/tutorials/scripting/c_sharp/c_sharp_differences.pot b/sphinx/templates/tutorials/scripting/c_sharp/c_sharp_differences.pot index cff076ccb3..3e9ae31149 100644 --- a/sphinx/templates/tutorials/scripting/c_sharp/c_sharp_differences.pot +++ b/sphinx/templates/tutorials/scripting/c_sharp/c_sharp_differences.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/c_sharp/c_sharp_features.pot b/sphinx/templates/tutorials/scripting/c_sharp/c_sharp_features.pot index 5369e95f87..e5131b4fe7 100644 --- a/sphinx/templates/tutorials/scripting/c_sharp/c_sharp_features.pot +++ b/sphinx/templates/tutorials/scripting/c_sharp/c_sharp_features.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/c_sharp/c_sharp_style_guide.pot b/sphinx/templates/tutorials/scripting/c_sharp/c_sharp_style_guide.pot index 5fad2478d9..967039b789 100644 --- a/sphinx/templates/tutorials/scripting/c_sharp/c_sharp_style_guide.pot +++ b/sphinx/templates/tutorials/scripting/c_sharp/c_sharp_style_guide.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/c_sharp/index.pot b/sphinx/templates/tutorials/scripting/c_sharp/index.pot index d8951a95d5..17fdfc0259 100644 --- a/sphinx/templates/tutorials/scripting/c_sharp/index.pot +++ b/sphinx/templates/tutorials/scripting/c_sharp/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/change_scenes_manually.pot b/sphinx/templates/tutorials/scripting/change_scenes_manually.pot index 46c90798d5..c90572ae7e 100644 --- a/sphinx/templates/tutorials/scripting/change_scenes_manually.pot +++ b/sphinx/templates/tutorials/scripting/change_scenes_manually.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/creating_script_templates.pot b/sphinx/templates/tutorials/scripting/creating_script_templates.pot index 630553b536..ad10b4d7d0 100644 --- a/sphinx/templates/tutorials/scripting/creating_script_templates.pot +++ b/sphinx/templates/tutorials/scripting/creating_script_templates.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/cross_language_scripting.pot b/sphinx/templates/tutorials/scripting/cross_language_scripting.pot index 07de0b2191..191a34fea2 100644 --- a/sphinx/templates/tutorials/scripting/cross_language_scripting.pot +++ b/sphinx/templates/tutorials/scripting/cross_language_scripting.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/debug/debugger_panel.pot b/sphinx/templates/tutorials/scripting/debug/debugger_panel.pot index 94af32e2e9..6b2ae21996 100644 --- a/sphinx/templates/tutorials/scripting/debug/debugger_panel.pot +++ b/sphinx/templates/tutorials/scripting/debug/debugger_panel.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/debug/index.pot b/sphinx/templates/tutorials/scripting/debug/index.pot index f307296cfa..cd9a446900 100644 --- a/sphinx/templates/tutorials/scripting/debug/index.pot +++ b/sphinx/templates/tutorials/scripting/debug/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/debug/overview_of_debugging_tools.pot b/sphinx/templates/tutorials/scripting/debug/overview_of_debugging_tools.pot index f68cd5d444..b66bc1faf6 100644 --- a/sphinx/templates/tutorials/scripting/debug/overview_of_debugging_tools.pot +++ b/sphinx/templates/tutorials/scripting/debug/overview_of_debugging_tools.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/evaluating_expressions.pot b/sphinx/templates/tutorials/scripting/evaluating_expressions.pot index 64e3f70b1b..4d4084db63 100644 --- a/sphinx/templates/tutorials/scripting/evaluating_expressions.pot +++ b/sphinx/templates/tutorials/scripting/evaluating_expressions.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/filesystem.pot b/sphinx/templates/tutorials/scripting/filesystem.pot index 78ccf431ad..e05fd41cfc 100644 --- a/sphinx/templates/tutorials/scripting/filesystem.pot +++ b/sphinx/templates/tutorials/scripting/filesystem.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/gdnative/gdnative_c_example.pot b/sphinx/templates/tutorials/scripting/gdnative/gdnative_c_example.pot index cc346c7c72..beb6d0347d 100644 --- a/sphinx/templates/tutorials/scripting/gdnative/gdnative_c_example.pot +++ b/sphinx/templates/tutorials/scripting/gdnative/gdnative_c_example.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -77,7 +77,7 @@ msgid "If you plan to use Git for your GDNative project, you can also add ``godo msgstr "" #: ../../docs/tutorials/scripting/gdnative/gdnative_c_example.rst:75 -msgid "The ``godot-headers`` repository has different branches. As Godot evolves, so does GDNative. While we try to preserve compatibility between version, you should always build your GDNative module against headers matching the Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-stable``) that you use. GDNative modules built against older versions of the Godot headers *may* work with newer versions of the engine, but not the other way around." +msgid "The ``godot-headers`` repository has different branches. As Godot evolves, so does GDNative. While we try to preserve compatibility between version, you should always build your GDNative module against headers matching the Godot stable branch (e.g. ``3.4``) and ideally actual release (e.g. ``3.4.4-stable``) that you use. GDNative modules built against older versions of the Godot headers *may* work with newer versions of the engine, but not the other way around." msgstr "" #: ../../docs/tutorials/scripting/gdnative/gdnative_c_example.rst:83 @@ -85,11 +85,11 @@ msgid "The ``master`` branch of the ``godot-headers`` repository is kept in line msgstr "" #: ../../docs/tutorials/scripting/gdnative/gdnative_c_example.rst:87 -msgid "If you want to write a GDNative module for a stable version of Godot, look at the available Git tags (with ``git tags``) for the one matching your engine version. In the ``godot-headers`` repository, such tags are prefixed with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for use with Godot 3.1.1. In your cloned repository, you can do:" +msgid "If you want to write a GDNative module for a stable version of Godot, look at the available Git tags (with ``git tags``) for the one matching your engine version. In the ``godot-headers`` repository, such tags are prefixed with ``godot-``, so you can e.g. checkout the ``godot-3.4.4-stable`` tag for use with Godot 3.4.4. In your cloned repository, you can do:" msgstr "" #: ../../docs/tutorials/scripting/gdnative/gdnative_c_example.rst:97 -msgid "If a tag matching your stable release is missing for any reason, you can fall back to the matching stable branch (e.g. ``3.1``), which you would also check out with ``git checkout 3.1``." +msgid "If a tag matching your stable release is missing for any reason, you can fall back to the matching stable branch (e.g. ``3.4``), which you would also check out with ``git checkout 3.4``." msgstr "" #: ../../docs/tutorials/scripting/gdnative/gdnative_c_example.rst:101 diff --git a/sphinx/templates/tutorials/scripting/gdnative/gdnative_cpp_example.pot b/sphinx/templates/tutorials/scripting/gdnative/gdnative_cpp_example.pot index 5c01df6df4..162c047078 100644 --- a/sphinx/templates/tutorials/scripting/gdnative/gdnative_cpp_example.pot +++ b/sphinx/templates/tutorials/scripting/gdnative/gdnative_cpp_example.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/gdnative/index.pot b/sphinx/templates/tutorials/scripting/gdnative/index.pot index 518c4607e2..a01ec95ced 100644 --- a/sphinx/templates/tutorials/scripting/gdnative/index.pot +++ b/sphinx/templates/tutorials/scripting/gdnative/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/gdnative/what_is_gdnative.pot b/sphinx/templates/tutorials/scripting/gdnative/what_is_gdnative.pot index 92fd24576c..3bc6b49ae4 100644 --- a/sphinx/templates/tutorials/scripting/gdnative/what_is_gdnative.pot +++ b/sphinx/templates/tutorials/scripting/gdnative/what_is_gdnative.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -121,7 +121,7 @@ msgid "`D `__" msgstr "" #: ../../docs/tutorials/scripting/gdnative/what_is_gdnative.rst:86 -msgid "`Kotlin `__" +msgid "`Kotlin `__" msgstr "" #: ../../docs/tutorials/scripting/gdnative/what_is_gdnative.rst:87 diff --git a/sphinx/templates/tutorials/scripting/gdscript/gdscript_advanced.pot b/sphinx/templates/tutorials/scripting/gdscript/gdscript_advanced.pot index 44742759aa..7b5d2fee23 100644 --- a/sphinx/templates/tutorials/scripting/gdscript/gdscript_advanced.pot +++ b/sphinx/templates/tutorials/scripting/gdscript/gdscript_advanced.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/gdscript/gdscript_basics.pot b/sphinx/templates/tutorials/scripting/gdscript/gdscript_basics.pot index be073d1690..fec069c174 100644 --- a/sphinx/templates/tutorials/scripting/gdscript/gdscript_basics.pot +++ b/sphinx/templates/tutorials/scripting/gdscript/gdscript_basics.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -103,7 +103,7 @@ msgid "else" msgstr "" #: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:149 -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:873 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:888 msgid "for" msgstr "" @@ -112,7 +112,7 @@ msgid "See for_." msgstr "" #: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:151 -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:862 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:877 msgid "while" msgstr "" @@ -121,7 +121,7 @@ msgid "See while_." msgstr "" #: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:153 -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:908 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:923 msgid "match" msgstr "" @@ -523,1143 +523,1147 @@ msgid "``in``" msgstr "" #: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:268 -msgid "Content test" +msgid "When used with the ``if`` keyword it checks if a value is within a string, list, range, dictionary, or node. When used with the ``for`` keyword it is used to iterate though the contents of a string, list, range, dictionary or node." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:270 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:275 msgid "``!`` ``not``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:270 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:275 msgid "Boolean NOT" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:272 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:277 msgid "``and`` ``&&``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:272 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:277 msgid "Boolean AND" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:274 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:279 msgid "``or`` ``||``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:274 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:279 msgid "Boolean OR" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:276 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:281 msgid "``if x else``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:276 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:281 msgid "Ternary if/else" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:278 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:283 msgid "``as``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:278 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:283 msgid "Type casting" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:280 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:285 msgid "``=`` ``+=`` ``-=`` ``*=`` ``/=`` ``%=`` ``&=`` ``|=`` ``<<=`` ``>>=``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:280 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:285 msgid "Assignment (lowest priority)" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:284 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:289 msgid "Literals" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:287 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:292 msgid "**Literal**" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:287 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:292 msgid "**Type**" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:289 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:294 msgid "``45``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:289 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:294 msgid "Base 10 integer" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:291 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:296 msgid "``0x8f51``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:291 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:296 msgid "Base 16 (hexadecimal) integer" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:293 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:298 msgid "``0b101010``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:293 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:298 msgid "Base 2 (binary) integer" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:295 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:300 msgid "``3.14``, ``58.1e-10``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:295 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:300 msgid "Floating-point number (real)" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:297 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:302 msgid "``\"Hello\"``, ``\"Hi\"``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:297 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:302 msgid "Strings" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:299 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:304 msgid "``\"\"\"Hello\"\"\"``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:299 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:304 msgid "Multiline string" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:301 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:306 msgid "``@\"Node/Label\"``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:301 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:306 msgid ":ref:`class_NodePath` or StringName" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:303 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:308 msgid "``$NodePath``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:303 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:308 msgid "Shorthand for ``get_node(\"NodePath\")``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:306 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:311 msgid "Integers and floats can have their numbers separated with ``_`` to make them more readable. The following ways to write numbers are all valid::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:315 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:320 msgid "Comments" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:317 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:322 msgid "Anything from a ``#`` to the end of the line is ignored and is considered a comment." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:327 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:332 msgid "Built-in types" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:329 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:334 msgid "Built-in types are stack-allocated. They are passed as values. This means a copy is created on each assignment or when passing them as arguments to functions. The only exceptions are ``Array``\\ s and ``Dictionaries``, which are passed by reference so they are shared. (Pooled arrays such as ``PoolByteArray`` are still passed as values.)" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:336 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:341 msgid "Basic built-in types" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:338 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:343 msgid "A variable in GDScript can be assigned to several built-in types." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:341 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:346 msgid "null" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:343 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:348 msgid "``null`` is an empty data type that contains no information and can not be assigned any other value." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:347 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:352 msgid ":ref:`bool `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:349 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:354 msgid "Short for \"boolean\", it can only contain ``true`` or ``false``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:352 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:357 msgid ":ref:`int `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:354 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:359 msgid "Short for \"integer\", it stores whole numbers (positive and negative). It is stored as a 64-bit value, equivalent to \"int64_t\" in C++." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:358 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:363 msgid ":ref:`float `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:360 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:365 msgid "Stores real numbers, including decimals, using floating-point values. It is stored as a 64-bit value, equivalent to \"double\" in C++. Note: Currently, data structures such as Vector2, Vector3, and PoolRealArray store 32-bit single-precision \"float\" values." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:366 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:371 msgid ":ref:`String `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:368 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:373 msgid "A sequence of characters in `Unicode format `_. Strings can contain the following escape sequences:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:372 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:377 msgid "**Escape sequence**" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:372 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:377 msgid "**Expands to**" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:374 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:379 msgid "``\\n``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:374 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:379 msgid "Newline (line feed)" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:376 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:381 msgid "``\\t``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:376 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:381 msgid "Horizontal tab character" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:378 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:383 msgid "``\\r``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:378 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:383 msgid "Carriage return" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:380 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:385 msgid "``\\a``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:380 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:385 msgid "Alert (beep/bell)" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:382 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:387 msgid "``\\b``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:382 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:387 msgid "Backspace" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:384 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:389 msgid "``\\f``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:384 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:389 msgid "Formfeed page break" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:386 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:391 msgid "``\\v``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:386 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:391 msgid "Vertical tab character" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:388 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:393 msgid "``\\\"``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:388 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:393 msgid "Double quote" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:390 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:395 msgid "``\\'``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:390 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:395 msgid "Single quote" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:392 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:397 msgid "``\\\\``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:392 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:397 msgid "Backslash" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:394 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:399 msgid "``\\uXXXX``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:394 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:399 msgid "Unicode codepoint ``XXXX`` (hexadecimal, case-insensitive)" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:398 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:403 msgid "GDScript also supports :ref:`doc_gdscript_printf`." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:401 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:406 msgid "Vector built-in types" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:404 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:409 msgid ":ref:`Vector2 `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:406 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:411 msgid "2D vector type containing ``x`` and ``y`` fields. Can also be accessed as an array." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:410 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:415 msgid ":ref:`Rect2 `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:412 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:417 msgid "2D Rectangle type containing two vectors fields: ``position`` and ``size``. Also contains an ``end`` field which is ``position + size``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:416 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:421 msgid ":ref:`Vector3 `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:418 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:423 msgid "3D vector type containing ``x``, ``y`` and ``z`` fields. This can also be accessed as an array." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:422 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:427 msgid ":ref:`Transform2D `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:424 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:429 msgid "3×2 matrix used for 2D transforms." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:427 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:432 msgid ":ref:`Plane `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:429 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:434 msgid "3D Plane type in normalized form that contains a ``normal`` vector field and a ``d`` scalar distance." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:433 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:438 msgid ":ref:`Quat `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:435 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:440 msgid "Quaternion is a datatype used for representing a 3D rotation. It's useful for interpolating rotations." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:439 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:444 msgid ":ref:`AABB `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:441 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:446 msgid "Axis-aligned bounding box (or 3D box) contains 2 vectors fields: ``position`` and ``size``. Also contains an ``end`` field which is ``position + size``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:446 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:451 msgid ":ref:`Basis `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:448 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:453 msgid "3x3 matrix used for 3D rotation and scale. It contains 3 vector fields (``x``, ``y`` and ``z``) and can also be accessed as an array of 3D vectors." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:453 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:458 msgid ":ref:`Transform `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:455 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:460 msgid "3D Transform contains a Basis field ``basis`` and a Vector3 field ``origin``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:459 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:464 msgid "Engine built-in types" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:462 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:467 msgid ":ref:`Color `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:464 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:469 msgid "Color data type contains ``r``, ``g``, ``b``, and ``a`` fields. It can also be accessed as ``h``, ``s``, and ``v`` for hue/saturation/value." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:468 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:473 msgid ":ref:`NodePath `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:470 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:475 msgid "Compiled path to a node used mainly in the scene system. It can be easily assigned to, and from, a String." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:474 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:479 msgid ":ref:`RID `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:476 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:481 msgid "Resource ID (RID). Servers use generic RIDs to reference opaque data." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:479 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:484 msgid ":ref:`Object `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:481 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:486 msgid "Base class for anything that is not a built-in type." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:484 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:489 msgid "Container built-in types" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:487 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:492 msgid ":ref:`Array `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:489 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:494 msgid "Generic sequence of arbitrary object types, including other arrays or dictionaries (see below). The array can resize dynamically. Arrays are indexed starting from index ``0``. Negative indices count from the end." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:503 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:508 msgid "GDScript arrays are allocated linearly in memory for speed. Large arrays (more than tens of thousands of elements) may however cause memory fragmentation. If this is a concern, special types of arrays are available. These only accept a single data type. They avoid memory fragmentation and use less memory, but are atomic and tend to run slower than generic arrays. They are therefore only recommended to use for large data sets:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:510 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:515 msgid ":ref:`PoolByteArray `: An array of bytes (integers from 0 to 255)." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:511 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:516 msgid ":ref:`PoolIntArray `: An array of integers." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:512 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:517 msgid ":ref:`PoolRealArray `: An array of floats." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:513 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:518 msgid ":ref:`PoolStringArray `: An array of strings." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:514 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:519 msgid ":ref:`PoolVector2Array `: An array of :ref:`Vector2 ` objects." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:515 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:520 msgid ":ref:`PoolVector3Array `: An array of :ref:`Vector3 ` objects." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:516 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:521 msgid ":ref:`PoolColorArray `: An array of :ref:`Color ` objects." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:519 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:524 msgid ":ref:`Dictionary `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:521 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:526 msgid "Associative container which contains values referenced by unique keys." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:534 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:539 msgid "Lua-style table syntax is also supported. Lua-style uses ``=`` instead of ``:`` and doesn't use quotes to mark string keys (making for slightly less to write). However, keys written in this form can't start with a digit (like any GDScript identifier)." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:548 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:553 msgid "To add a key to an existing dictionary, access it like an existing key and assign to it::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:564 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:569 msgid "The bracket syntax can be used to access properties of any :ref:`class_Object`, not just Dictionaries. Keep in mind it will cause a script error when attempting to index a non-existing property. To avoid this, use the :ref:`Object.get() ` and :ref:`Object.set() ` methods instead." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:571 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:576 msgid "Data" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:574 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:579 msgid "Variables" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:576 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:581 msgid "Variables can exist as class members or local to functions. They are created with the ``var`` keyword and may, optionally, be assigned a value upon initialization." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:587 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:592 msgid "Variables can optionally have a type specification. When a type is specified, the variable will be forced to have always that same type, and trying to assign an incompatible value will raise an error." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:591 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:596 msgid "Types are specified in the variable declaration using a ``:`` (colon) symbol after the variable name, followed by the type." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:599 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:604 msgid "If the variable is initialized within the declaration, the type can be inferred, so it's possible to omit the type name::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:605 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:610 msgid "Type inference is only possible if the assigned value has a defined type, otherwise it will raise an error." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:608 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:613 msgid "Valid types are:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:610 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:615 msgid "Built-in types (Array, Vector2, int, String, etc.)." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:611 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:616 msgid "Engine classes (Node, Resource, Reference, etc.)." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:612 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:617 msgid "Constant names if they contain a script resource (``MyScript`` if you declared ``const MyScript = preload(\"res://my_script.gd\")``)." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:613 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:618 msgid "Other classes in the same script, respecting scope (``InnerClass.NestedClass`` if you declared ``class NestedClass`` inside the ``class InnerClass`` in the same scope)." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:614 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:619 msgid "Script classes declared with the ``class_name`` keyword." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:617 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:622 msgid "Casting" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:619 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:624 msgid "Values assigned to typed variables must have a compatible type. If it's needed to coerce a value to be of a certain type, in particular for object types, you can use the casting operator ``as``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:623 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:628 msgid "Casting between object types results in the same object if the value is of the same type or a subtype of the cast type." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:631 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:636 msgid "If the value is not a subtype, the casting operation will result in a ``null`` value." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:638 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:643 msgid "For built-in types, they will be forcibly converted if possible, otherwise the engine will raise an error." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:647 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:652 msgid "Casting is also useful to have better type-safe variables when interacting with the scene tree::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:657 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:662 msgid "Constants" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:659 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:664 msgid "Constants are values you cannot change when the game is running. Their value must be known at compile-time. Using the ``const`` keyword allows you to give a constant value a name. Trying to assign a value to a constant after it's declared will give you an error." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:664 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:669 msgid "We recommend using constants whenever a value is not meant to change." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:677 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:682 msgid "Although the type of constants is inferred from the assigned value, it's also possible to add explicit type specification::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:683 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:688 msgid "Assigning a value of an incompatible type will raise an error." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:687 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:692 msgid "Since arrays and dictionaries are passed by reference, constants are \"flat\". This means that if you declare a constant array or dictionary, it can still be modified afterwards. They can't be reassigned with another value though." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:692 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:697 msgid "Enums" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:694 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:699 msgid "Enums are basically a shorthand for constants, and are pretty useful if you want to assign consecutive integers to some constant." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:697 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:702 msgid "If you pass a name to the enum, it will put all the keys inside a constant dictionary of that name." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:700 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:705 msgid "In Godot 3.1 and later, keys in a named enum are not registered as global constants. They should be accessed prefixed by the enum's name (``Name.KEY``); see an example below." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:720 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:725 msgid "Functions" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:722 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:727 msgid "Functions always belong to a `class `_. The scope priority for variable look-up is: local → class member → global. The ``self`` variable is always available and is provided as an option for accessing class members, but is not always required (and should *not* be sent as the function's first argument, unlike Python)." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:735 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:740 msgid "A function can ``return`` at any point. The default return value is ``null``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:737 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:742 msgid "Functions can also have type specification for the arguments and for the return value. Types for arguments can be added in a similar way to variables::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:743 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:748 msgid "If a function argument has a default value, it's possible to infer the type::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:748 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:753 msgid "The return type of the function can be specified after the arguments list using the arrow token (``->``)::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:754 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:759 msgid "Functions that have a return type **must** return a proper value. Setting the type as ``void`` means the function doesn't return anything. Void functions can return early with the ``return`` keyword, but they can't return any value." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:763 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:768 msgid "Non-void functions must **always** return a value, so if your code has branching statements (such as an ``if``/``else`` construct), all the possible paths must have a return. E.g., if you have a ``return`` inside an ``if`` block but not after it, the editor will raise an error because if the block is not executed, the function won't have a valid value to return." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:771 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:776 msgid "Referencing functions" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:773 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:778 msgid "Contrary to Python, functions are *not* first-class objects in GDScript. This means they cannot be stored in variables, passed as an argument to another function or be returned from other functions. This is for performance reasons." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:777 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:782 msgid "To reference a function by name at run-time, (e.g. to store it in a variable, or pass it to another function as an argument) one must use the ``call`` or ``funcref`` helpers::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:791 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:796 msgid "Static functions" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:793 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:798 msgid "A function can be declared static. When a function is static, it has no access to the instance member variables or ``self``. This is mainly useful to make libraries of helper functions::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:802 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:807 msgid "Statements and control flow" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:804 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:809 msgid "Statements are standard and can be assignments, function calls, control flow structures, etc (see below). ``;`` as a statement separator is entirely optional." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:809 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:814 msgid "if/else/elif" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:811 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:816 msgid "Simple conditions are created by using the ``if``/``else``/``elif`` syntax. Parenthesis around conditions are allowed, but not required. Given the nature of the tab-based indentation, ``elif`` can be used instead of ``else``/``if`` to maintain a level of indentation." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:825 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:830 msgid "Short statements can be written on the same line as the condition::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:832 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:837 msgid "Sometimes, you might want to assign a different initial value based on a boolean expression. In this case, ternary-if expressions come in handy::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:838 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:843 msgid "Ternary-if expressions can be nested to handle more than 2 cases. When nesting ternary-if expressions, it is recommended to wrap the complete expression over multiple lines to preserve readability::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:864 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:866 +msgid "You may also wish to check if a value is contained within something. You can use an ``if`` statement combined with the ``in`` operator to accomplish this::" +msgstr "" + +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:879 msgid "Simple loops are created by using ``while`` syntax. Loops can be broken using ``break`` or continued using ``continue``:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:875 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:890 msgid "To iterate through a range, such as an array or table, a *for* loop is used. When iterating over an array, the current array element is stored in the loop variable. When iterating over a dictionary, the *key* is stored in the loop variable." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:910 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:925 msgid "A ``match`` statement is used to branch execution of a program. It's the equivalent of the ``switch`` statement found in many other languages, but offers some additional features." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:913 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:928 msgid "Basic syntax::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:924 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:939 msgid "**Crash-course for people who are familiar with switch statements**:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:926 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:941 msgid "Replace ``switch`` with ``match``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:927 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:942 msgid "Remove ``case``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:928 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:943 msgid "Remove any ``break``\\ s. If you don't want to ``break`` by default, you can use ``continue`` for a fallthrough." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:929 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:944 msgid "Change ``default`` to a single underscore." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:932 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:947 msgid "**Control flow**:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:934 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:949 msgid "The patterns are matched from top to bottom. If a pattern matches, the first corresponding block will be executed. After that, the execution continues below the ``match`` statement. You can use ``continue`` to stop execution in the current block and check for an additional match in the patterns below it." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:938 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:953 msgid "There are 6 pattern types:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:950 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:965 msgid "Constant pattern" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:941 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:956 msgid "Constant primitives, like numbers and strings::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:962 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:977 msgid "Variable pattern" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:953 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:968 msgid "Matches the contents of a variable/enum::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:976 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:991 msgid "Wildcard pattern" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:965 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:980 msgid "This pattern matches everything. It's written as a single underscore." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:967 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:982 msgid "It can be used as the equivalent of the ``default`` in a ``switch`` statement in other languages::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:989 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1004 msgid "Binding pattern" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:979 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:994 msgid "A binding pattern introduces a new variable. Like the wildcard pattern, it matches everything - and also gives that value a name. It's especially useful in array and dictionary patterns::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1010 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1025 msgid "Array pattern" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:992 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1007 msgid "Matches an array. Every single element of the array pattern is a pattern itself, so you can nest them." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:994 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1009 msgid "The length of the array is tested first, it has to be the same size as the pattern, otherwise the pattern doesn't match." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:996 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1011 msgid "**Open-ended array**: An array can be bigger than the pattern by making the last subpattern ``..``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:998 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1013 msgid "Every subpattern has to be comma-separated." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1037 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1052 msgid "Dictionary pattern" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1013 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1028 msgid "Works in the same way as the array pattern. Every key has to be a constant pattern." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1015 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1030 msgid "The size of the dictionary is tested first, it has to be the same size as the pattern, otherwise the pattern doesn't match." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1017 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1032 msgid "**Open-ended dictionary**: A dictionary can be bigger than the pattern by making the last subpattern ``..``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1019 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1034 msgid "Every subpattern has to be comma separated." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1021 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1036 msgid "If you don't specify a value, then only the existence of the key is checked." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1023 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1038 msgid "A value pattern is separated from the key pattern with a ``:``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1048 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1063 msgid "Multiple patterns" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1040 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1055 msgid "You can also specify multiple patterns separated by a comma. These patterns aren't allowed to have any bindings in them." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1051 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1066 msgid "Classes" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1053 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1068 msgid "By default, all script files are unnamed classes. In this case, you can only reference them using the file's path, using either a relative or an absolute path. For example, if you name a script file ``character.gd``::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1069 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1084 msgid "Registering named classes" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1071 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1086 msgid "You can give your class a name to register it as a new type in Godot's editor. For that, you use the ``class_name`` keyword. You can optionally add a comma followed by a path to an image, to use it as an icon. Your class will then appear with its new icon in the editor::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1085 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1100 msgid "If the script is located in the ``res://addons/`` directory, ``class_name`` will only cause the node to show up in the **Create New Node** dialog if the script is part of an *enabled* editor plugin. See :ref:`doc_making_plugins` for more information." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1090 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1105 msgid "Here's a class file example:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1112 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1127 msgid "Godot's class syntax is compact: it can only contain member variables or functions. You can use static functions, but not static member variables. In the same way, the engine initializes variables every time you create an instance, and this includes arrays and dictionaries. This is in the spirit of thread safety, since scripts can be initialized in separate threads without the user knowing." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1120 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1135 msgid "Inheritance" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1122 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1137 msgid "A class (stored as a file) can inherit from:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1124 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1139 msgid "A global class." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1125 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1140 msgid "Another class file." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1126 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1141 msgid "An inner class inside another class file." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1128 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1143 msgid "Multiple inheritance is not allowed." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1130 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1145 msgid "Inheritance uses the ``extends`` keyword::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1142 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1157 msgid "To check if a given instance inherits from a given class, the ``is`` keyword can be used::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1154 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1169 msgid "To call a function in a *parent class* (i.e. one ``extend``-ed in your current class), prepend ``.`` to the function name::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1159 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1174 msgid "This is especially useful because functions in extending classes replace functions with the same name in their parent classes. If you still want to call them, you can prefix them with ``.`` (like the ``super`` keyword in other languages)::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1167 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1182 msgid "Default functions like ``_init``, and most notifications such as ``_enter_tree``, ``_exit_tree``, ``_process``, ``_physics_process``, etc. are called in all parent classes automatically. There is no need to call them explicitly when overloading them." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1174 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1189 msgid "Class constructor" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1176 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1191 msgid "The class constructor, called on class instantiation, is named ``_init``. As mentioned earlier, the constructors of parent classes are called automatically when inheriting a class. So, there is usually no need to call ``._init()`` explicitly." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1181 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1196 msgid "Unlike the call of a regular function, like in the above example with ``.some_func``, if the constructor from the inherited class takes arguments, they are passed like this::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1188 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1203 msgid "This is better explained through examples. Consider this scenario::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1211 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1226 msgid "There are a few things to keep in mind here:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1213 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1228 msgid "If the inherited class (``State.gd``) defines a ``_init`` constructor that takes arguments (``e`` in this case), then the inheriting class (``Idle.gd``) *must* define ``_init`` as well and pass appropriate parameters to ``_init`` from ``State.gd``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1216 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1231 msgid "``Idle.gd`` can have a different number of arguments than the parent class ``State.gd``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1217 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1232 msgid "In the example above, ``e`` passed to the ``State.gd`` constructor is the same ``e`` passed in to ``Idle.gd``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1219 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1234 msgid "If ``Idle.gd``'s ``_init`` constructor takes 0 arguments, it still needs to pass some value to the ``State.gd`` parent class, even if it does nothing. This brings us to the fact that you can pass literals in the base constructor as well, not just variables, e.g.::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1229 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1244 msgid "Inner classes" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1231 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1246 msgid "A class file can contain inner classes. Inner classes are defined using the ``class`` keyword. They are instanced using the ``ClassName.new()`` function." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1256 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1271 msgid "Classes as resources" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1258 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1273 msgid "Classes stored as files are treated as :ref:`resources `. They must be loaded from disk to access them in other classes. This is done using either the ``load`` or ``preload`` functions (see below). Instancing of a loaded class resource is done by calling the ``new`` function on the class object::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1275 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1290 msgid "Exports" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1279 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1294 msgid "Documentation about exports has been moved to :ref:`doc_gdscript_exports`." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1282 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1297 msgid "Setters/getters" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1284 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1299 msgid "It is often useful to know when a class' member variable changes for whatever reason. It may also be desired to encapsulate its access in some way." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1287 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1302 msgid "For this, GDScript provides a *setter/getter* syntax using the ``setget`` keyword. It is used directly after a variable definition:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1294 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1309 msgid "Whenever the value of ``variable`` is modified by an *external* source (i.e. not from local usage in the class), the *setter* function (``setterfunc`` above) will be called. This happens *before* the value is changed. The *setter* must decide what to do with the new value. Vice versa, when ``variable`` is accessed, the *getter* function (``getterfunc`` above) must ``return`` the desired value. Below is an example::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1310 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1325 msgid "Either of the *setter* or *getter* functions can be omitted::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1317 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1332 msgid "Setters and getters are useful when :ref:`exporting variables ` to the editor in tool scripts or plugins, for validating input." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1320 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1335 msgid "As said, *local* access will *not* trigger the setter and getter. Here is an illustration of this:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1337 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1352 msgid "Tool mode" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1339 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1354 msgid "By default, scripts don't run inside the editor and only the exported properties can be changed. In some cases, it is desired that they do run inside the editor (as long as they don't execute game code or manually avoid doing so). For this, the ``tool`` keyword exists and must be placed at the top of the file::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1353 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1368 msgid "See :ref:`doc_running_code_in_the_editor` for more information." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1355 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1370 msgid "Be cautious when freeing nodes with ``queue_free()`` or ``free()`` in a tool script (especially the script's owner itself). As tool scripts run their code in the editor, misusing them may lead to crashing the editor." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1363 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1378 msgid "Memory management" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1365 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1380 msgid "If a class inherits from :ref:`class_Reference`, then instances will be freed when no longer in use. No garbage collector exists, just reference counting. By default, all classes that don't define inheritance extend **Reference**. If this is not desired, then a class must inherit :ref:`class_Object` manually and must call ``instance.free()``. To avoid reference cycles that can't be freed, a :ref:`class_WeakRef` function is provided for creating weak references. Here is an example:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1387 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1402 msgid "Alternatively, when not using references, the ``is_instance_valid(instance)`` can be used to check if an object has been freed." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1394 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1409 msgid "Signals" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1396 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1411 msgid "Signals are a tool to emit messages from an object that other objects can react to. To create custom signals for a class, use the ``signal`` keyword." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1409 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1424 msgid "Signals are a `Callback `_ mechanism. They also fill the role of Observers, a common programming pattern. For more information, read the `Observer tutorial `_ in the Game Programming Patterns ebook." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1416 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1431 msgid "You can connect these signals to methods the same way you connect built-in signals of nodes like :ref:`class_Button` or :ref:`class_RigidBody`." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1419 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1434 msgid "In the example below, we connect the ``health_depleted`` signal from a ``Character`` node to a ``Game`` node. When the ``Character`` node emits the signal, the game node's ``_on_Character_health_depleted`` is called::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1433 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1448 msgid "You can emit as many arguments as you want along with a signal." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1435 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1450 msgid "Here is an example where this is useful. Let's say we want a life bar on screen to react to health changes with an animation, but we want to keep the user interface separate from the player in our scene tree." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1439 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1454 msgid "In our ``Character.gd`` script, we define a ``health_changed`` signal and emit it with :ref:`Object.emit_signal() `, and from a ``Game`` node higher up our scene tree, we connect it to the ``Lifebar`` using the :ref:`Object.connect() ` method::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1480 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1495 msgid "To use signals, your class has to extend the ``Object`` class or any type extending it like ``Node``, ``KinematicBody``, ``Control``..." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1483 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1498 msgid "In the ``Game`` node, we get both the ``Character`` and ``Lifebar`` nodes, then connect the character, that emits the signal, to the receiver, the ``Lifebar`` node in this case." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1497 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1512 msgid "This allows the ``Lifebar`` to react to health changes without coupling it to the ``Character`` node." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1500 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1515 msgid "You can write optional argument names in parentheses after the signal's definition::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1506 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1521 msgid "These 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; it's up to you to emit the correct values." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1512 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1527 msgid "GDScript can bind an array of values to connections between a signal and a method. When the signal is emitted, the callback method receives the bound values. These bound arguments are unique to each connection, and the values will stay the same." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1517 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1532 msgid "You can use this array of values to add extra constant information to the connection if the emitted signal itself doesn't give you access to all the data that you need." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1521 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1536 msgid "Building on the example above, let's say we want to display a log of the damage taken by each character on the screen, like ``Player1 took 22 damage.``. The ``health_changed`` signal doesn't give us the name of the character that took damage. So when we connect the signal to the in-game console, we can add the character's name in the binds array argument::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1535 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1550 msgid "Our ``BattleLog`` node receives each element in the binds array as an extra argument::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1548 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1563 msgid "Coroutines with yield" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1550 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1565 msgid "GDScript offers support for `coroutines `_ via the :ref:`yield` built-in function. Calling ``yield()`` will immediately return from the current function, with the current frozen state of the same function as the return value. Calling ``resume()`` on this resulting object will continue execution and return whatever the function returns. Once resumed, the state object becomes invalid. Here is an example::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1571 -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1592 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1586 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1607 msgid "Will print::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1577 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1592 msgid "It is also possible to pass values between ``yield()`` and ``resume()``, for example::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1613 msgid "Remember to save the new function state, when using multiple ``yield``\\s::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1613 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines & signals" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1615 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1630 msgid "The real strength of using ``yield`` is when combined with signals. ``yield`` can accept two arguments, an object and a signal. When the signal is received, execution will recommence. Here are some examples::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1628 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1643 msgid "Coroutines themselves use the ``completed`` signal when they transition into an invalid state, for example::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1640 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1655 msgid "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1642 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1657 msgid "You can also get the signal's argument once it's emitted by an object:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1649 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1664 msgid "If there is more than one argument, ``yield`` returns an array containing the arguments::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1667 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1682 msgid "If you're unsure whether a function may yield or not, or whether it may yield multiple times, you can yield to the ``completed`` signal conditionally:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1689 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1704 msgid "This ensures that the function returns whatever it was supposed to return regardless of whether coroutines were used internally. Note that using ``while`` would be redundant here as the ``completed`` signal is only emitted when the function didn't yield anymore." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1697 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1712 msgid "`onready` keyword" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1699 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1714 msgid "When using nodes, it's common to desire to keep references to parts of the scene in a variable. As scenes are only warranted to be configured when entering the active scene tree, the sub-nodes can only be obtained when a call to ``Node._ready()`` is made." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1712 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1727 msgid "This can get a little cumbersome, especially when nodes and external references pile up. For this, GDScript has the ``onready`` keyword, that defers initialization of a member variable until ``_ready()`` is called. It can replace the above code with a single line::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1720 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1735 msgid "Assert keyword" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1722 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1737 msgid "The ``assert`` keyword can be used to check conditions in debug builds. These assertions are ignored in non-debug builds. This means that the expression passed as argument won't be evaluated in a project exported in release mode. Due to this, assertions must **not** contain expressions that have side effects. Otherwise, the behavior of the script would vary depending on whether the project is run in a debug build." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1734 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1749 msgid "When running a project from the editor, the project will be paused if an assertion error occurs." msgstr "" diff --git a/sphinx/templates/tutorials/scripting/gdscript/gdscript_exports.pot b/sphinx/templates/tutorials/scripting/gdscript/gdscript_exports.pot index 2a28ae97b7..a2989c70a6 100644 --- a/sphinx/templates/tutorials/scripting/gdscript/gdscript_exports.pot +++ b/sphinx/templates/tutorials/scripting/gdscript/gdscript_exports.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -141,42 +141,58 @@ msgid "To attach variables to properties (allowing the value of the property to msgstr "" #: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:292 -msgid "Adding script categories" +msgid "Adding default values for properties" msgstr "" #: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:294 +msgid "To define default values for advanced exports, you need to override the ``property_can_revert()`` and ``property_get_revert()`` methods." +msgstr "" + +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:296 +msgid "The ``property_can_revert()`` method takes the name of a property and must return ``true`` if the property can be reverted. This will enable the Revert button next to the property in the inspector." +msgstr "" + +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:298 +msgid "The ``property_get_revert()`` method takes the name of a property and must return the default value for that property." +msgstr "" + +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:320 +msgid "Adding script categories" +msgstr "" + +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:322 msgid "For better visual distinguishing of properties, a special script category can be embedded into the inspector to act as a separator. ``Script Variables`` is one example of a built-in category. ::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:314 +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:342 msgid "``name`` is the name of a category to be added to the inspector;" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:316 +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:344 msgid "Every following property added after the category definition will be a part of the category." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:319 +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:347 msgid "``PROPERTY_USAGE_CATEGORY`` indicates that the property should be treated as a script category specifically, so the type ``TYPE_NIL`` can be ignored as it won't be actually used for the scripting logic, yet it must be defined anyway." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:324 +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:352 msgid "Grouping properties" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:326 +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:354 msgid "A list of properties with similar names can be grouped. ::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:352 +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:380 msgid "``name`` is the name of a group which is going to be displayed as collapsible list of properties;" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:355 +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:383 msgid "Every following property added after the group property with the prefix (which determined by ``hint_string``) will be shortened. For instance, ``rotate_speed`` is going to be shortened to ``speed`` in this case. However, ``movement_speed`` won't be a part of the group and will not be shortened." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:361 +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:389 msgid "``PROPERTY_USAGE_GROUP`` indicates that the property should be treated as a script group specifically, so the type ``TYPE_NIL`` can be ignored as it won't be actually used for the scripting logic, yet it must be defined anyway." msgstr "" diff --git a/sphinx/templates/tutorials/scripting/gdscript/gdscript_format_string.pot b/sphinx/templates/tutorials/scripting/gdscript/gdscript_format_string.pot index bedfcc9b04..9bda4e4dd4 100644 --- a/sphinx/templates/tutorials/scripting/gdscript/gdscript_format_string.pot +++ b/sphinx/templates/tutorials/scripting/gdscript/gdscript_format_string.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -169,219 +169,219 @@ msgid "Integer" msgstr "" #: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:136 -msgid "Set **padding**. Padded with spaces or with zeroes if integer starts with ``0`` in an integer placeholder. When used after ``.``, see ``.``." +msgid "Set **padding**. Padded with spaces or with zeroes if integer starts with ``0`` in an integer or real number placeholder. The leading ``0`` is ignored if ``-`` is present. When used after ``.``, see ``.``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:140 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:141 msgid "``.``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:140 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:141 msgid "Before ``f``, set **precision** to 0 decimal places. Can be followed up with numbers to change. Padded with zeroes." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:143 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:144 msgid "``-``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:143 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:144 msgid "**Pad to the right** rather than the left." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:145 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:146 msgid "``*``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:145 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:146 msgid "**Dynamic padding**, expect additional integral parameter to set padding or precision after ``.``, see `dynamic padding`_." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:151 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:152 msgid "Padding" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:153 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:154 msgid "The ``.`` (*dot*), ``*`` (*asterisk*), ``-`` (*minus sign*) and digit (``0``-``9``) characters are used for padding. This allows printing several values aligned vertically as if in a column, provided a fixed-width font is used." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:158 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:159 msgid "To pad a string to a minimum length, add an integer to the specifier:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:166 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:167 msgid "If the integer starts with ``0``, integral values are padded with zeroes instead of white space:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:174 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:175 msgid "Precision can be specified for real numbers by adding a ``.`` (*dot*) with an integer following it. With no integer after ``.``, a precision of 0 is used, rounding to integral value. The integer to use for padding must appear before the dot." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:186 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:187 msgid "The ``-`` character will cause padding to the right rather than the left, useful for right text alignment:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:197 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:198 msgid "Dynamic padding" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:199 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:200 msgid "By using the ``*`` (*asterisk*) character, the padding or precision can be set without modifying the format string. It is used in place of an integer in the format specifier. The values for padding and precision are then passed when formatting:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:212 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:213 msgid "It is still possible to pad with zeroes in integer placeholders by adding ``0`` before ``*``:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:222 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:223 msgid "Escape sequence" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:224 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:225 msgid "To insert a literal ``%`` character into a format string, it must be escaped to avoid reading it as a placeholder. This is done by doubling the character:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:235 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:236 msgid "Format method examples" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:237 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:238 msgid "The following are some examples of how to use the various invocations of the ``String.format`` method." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:242 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:264 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:243 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:265 msgid "**Type**" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:242 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:243 msgid "**Style**" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:242 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:264 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:277 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:243 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:265 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:278 msgid "**Example**" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:242 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:264 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:277 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:243 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:265 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:278 msgid "**Result**" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:244 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:246 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:248 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:245 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:247 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:249 msgid "Dictionary" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:244 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:250 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:245 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:251 msgid "key" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:244 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:245 msgid "``\"Hi, {name} v{version}!\".format({\"name\":\"Godette\", \"version\":\"3.0\"})``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:244 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:246 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:248 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:250 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:252 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:254 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:256 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:245 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:247 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:249 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:251 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:253 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:255 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:257 msgid "Hi, Godette v3.0!" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:246 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:252 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:247 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:253 msgid "index" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:246 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:247 msgid "``\"Hi, {0} v{1}!\".format({\"0\":\"Godette\", \"1\":\"3.0\"})``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:248 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:254 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:249 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:255 msgid "mix" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:248 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:249 msgid "``\"Hi, {0} v{version}!\".format({\"0\":\"Godette\", \"version\":\"3.0\"})``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:250 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:252 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:254 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:256 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:251 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:253 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:255 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:257 msgid "Array" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:250 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:251 msgid "``\"Hi, {name} v{version}!\".format([[\"version\",\"3.0\"], [\"name\",\"Godette\"]])``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:252 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:253 msgid "``\"Hi, {0} v{1}!\".format([\"Godette\",\"3.0\"])``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:254 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:255 msgid "``\"Hi, {name} v{0}!\".format([3.0, [\"name\",\"Godette\"]])``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:256 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:257 msgid "no index" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:256 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:257 msgid "``\"Hi, {} v{}!\".format([\"Godette\", 3.0], \"{}\")``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:259 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:260 msgid "Placeholders can also be customized when using ``String.format``, here's some examples of that functionality." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:266 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:267 msgid "Infix (default)" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:266 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:267 msgid "``\"Hi, {0} v{1}\".format([\"Godette\", \"3.0\"], \"{_}\")``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:266 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:268 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:270 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:267 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:269 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:271 msgid "Hi, Godette v3.0" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:268 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:269 msgid "Postfix" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:268 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:269 msgid "``\"Hi, 0% v1%\".format([\"Godette\", \"3.0\"], \"_%\")``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:270 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:271 msgid "Prefix" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:270 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:271 msgid "``\"Hi, %0 v%1\".format([\"Godette\", \"3.0\"], \"%_\")``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:273 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:274 msgid "Combining both the ``String.format`` method and the ``%`` operator could be useful, as ``String.format`` does not have a way to manipulate the representation of numbers." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:279 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:280 msgid "``\"Hi, {0} v{version}\".format({0:\"Godette\", \"version\":\"%0.2f\" % 3.114})``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:279 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:280 msgid "Hi, Godette v3.11" msgstr "" diff --git a/sphinx/templates/tutorials/scripting/gdscript/gdscript_styleguide.pot b/sphinx/templates/tutorials/scripting/gdscript/gdscript_styleguide.pot index 98d95f6b55..4789ae7745 100644 --- a/sphinx/templates/tutorials/scripting/gdscript/gdscript_styleguide.pot +++ b/sphinx/templates/tutorials/scripting/gdscript/gdscript_styleguide.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/gdscript/index.pot b/sphinx/templates/tutorials/scripting/gdscript/index.pot index 83de552496..4ccf089227 100644 --- a/sphinx/templates/tutorials/scripting/gdscript/index.pot +++ b/sphinx/templates/tutorials/scripting/gdscript/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/gdscript/static_typing.pot b/sphinx/templates/tutorials/scripting/gdscript/static_typing.pot index 0b7e60e601..cc481fdf8f 100644 --- a/sphinx/templates/tutorials/scripting/gdscript/static_typing.pot +++ b/sphinx/templates/tutorials/scripting/gdscript/static_typing.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/gdscript/warning_system.pot b/sphinx/templates/tutorials/scripting/gdscript/warning_system.pot index 21ff8d4172..24c6804872 100644 --- a/sphinx/templates/tutorials/scripting/gdscript/warning_system.pot +++ b/sphinx/templates/tutorials/scripting/gdscript/warning_system.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/groups.pot b/sphinx/templates/tutorials/scripting/groups.pot index 837afacd16..408e5b12ec 100644 --- a/sphinx/templates/tutorials/scripting/groups.pot +++ b/sphinx/templates/tutorials/scripting/groups.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/idle_and_physics_processing.pot b/sphinx/templates/tutorials/scripting/idle_and_physics_processing.pot index 2a1604bcf8..b08e868b88 100644 --- a/sphinx/templates/tutorials/scripting/idle_and_physics_processing.pot +++ b/sphinx/templates/tutorials/scripting/idle_and_physics_processing.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/index.pot b/sphinx/templates/tutorials/scripting/index.pot index 9d3c75f01b..30a23df277 100644 --- a/sphinx/templates/tutorials/scripting/index.pot +++ b/sphinx/templates/tutorials/scripting/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/instancing_with_signals.pot b/sphinx/templates/tutorials/scripting/instancing_with_signals.pot index f1837b3fd6..37c3708883 100644 --- a/sphinx/templates/tutorials/scripting/instancing_with_signals.pot +++ b/sphinx/templates/tutorials/scripting/instancing_with_signals.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/nodes_and_scene_instances.pot b/sphinx/templates/tutorials/scripting/nodes_and_scene_instances.pot index 670e211ce1..3d838045ae 100644 --- a/sphinx/templates/tutorials/scripting/nodes_and_scene_instances.pot +++ b/sphinx/templates/tutorials/scripting/nodes_and_scene_instances.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/overridable_functions.pot b/sphinx/templates/tutorials/scripting/overridable_functions.pot index 1a641b2a99..10070fc8a9 100644 --- a/sphinx/templates/tutorials/scripting/overridable_functions.pot +++ b/sphinx/templates/tutorials/scripting/overridable_functions.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/pausing_games.pot b/sphinx/templates/tutorials/scripting/pausing_games.pot index 8dd2bd6ec8..f219ed1a7b 100644 --- a/sphinx/templates/tutorials/scripting/pausing_games.pot +++ b/sphinx/templates/tutorials/scripting/pausing_games.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,91 +17,83 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: ../../docs/tutorials/scripting/pausing_games.rst:4 -msgid "Pausing games" +msgid "Pausing games and process mode" msgstr "" #: ../../docs/tutorials/scripting/pausing_games.rst:7 -msgid "Pause?" +msgid "Introduction" msgstr "" #: ../../docs/tutorials/scripting/pausing_games.rst:9 -msgid "In most games it is desirable to, at some point, interrupt the game to do something else, such as taking a break or changing options. However, this is not as simple as it seems. The game might be stopped, but it might be desirable that some menus and animations continue working." +msgid "In most games it is desirable to, at some point, interrupt the game to do something else, such as taking a break or changing options. Implementing a fine-grained control for what can be paused (and what cannot) is a lot of work, so a simple framework for pausing is provided in Godot." msgstr "" -#: ../../docs/tutorials/scripting/pausing_games.rst:15 -msgid "Implementing a fine-grained control for what can be paused (and what can not) is a lot of work, so a simple framework for pausing is provided in Godot." -msgstr "" - -#: ../../docs/tutorials/scripting/pausing_games.rst:20 +#: ../../docs/tutorials/scripting/pausing_games.rst:16 msgid "How pausing works" msgstr "" -#: ../../docs/tutorials/scripting/pausing_games.rst:22 -msgid "To set pause mode, the pause state must be set. This is done by assigning ``true`` to the :ref:`SceneTree.paused ` property:" +#: ../../docs/tutorials/scripting/pausing_games.rst:18 +msgid "To pause the game the pause state must be set. This is done by assigning ``true`` to the :ref:`SceneTree.paused ` property:" +msgstr "" + +#: ../../docs/tutorials/scripting/pausing_games.rst:30 +msgid "Doing this will cause two things. First, 2D and 3D physics will be stopped for all nodes. Second, the behavior of certain nodes will stop or start depending on their process mode." msgstr "" #: ../../docs/tutorials/scripting/pausing_games.rst:34 -msgid "Doing so will have the following behavior:" -msgstr "" - -#: ../../docs/tutorials/scripting/pausing_games.rst:36 -msgid "2D and 3D physics will be stopped." -msgstr "" - -#: ../../docs/tutorials/scripting/pausing_games.rst:37 -msgid "``_process`` and ``_physics_process`` will not be called anymore in nodes." +msgid "The physics servers can be made active while the game is paused by using their ``set_active`` methods." msgstr "" #: ../../docs/tutorials/scripting/pausing_games.rst:38 -msgid "``_input`` and ``_input_event`` will not be called anymore either." +msgid "Process Modes" msgstr "" #: ../../docs/tutorials/scripting/pausing_games.rst:40 -msgid "This effectively stops the whole game. Calling this function from a script, by default, will result in an unrecoverable state (nothing will work anymore!)." +msgid "Each node in Godot has a \"Pause Mode\" that defines when it processes. It can be found and changed under a node's :ref:`Node ` properties in the inspector." msgstr "" #: ../../docs/tutorials/scripting/pausing_games.rst:45 -msgid "White-listing nodes" +msgid "You can also alter the property with code:" msgstr "" -#: ../../docs/tutorials/scripting/pausing_games.rst:47 -msgid "Before enabling pause, make sure that nodes that must keep working during pause are white-listed. This is done by editing the \"Pause Mode\" property in a node:" +#: ../../docs/tutorials/scripting/pausing_games.rst:60 +msgid "This is what each mode tells a node to do:" msgstr "" -#: ../../docs/tutorials/scripting/pausing_games.rst:53 -msgid "You can achieve the same result in code:" -msgstr "" - -#: ../../docs/tutorials/scripting/pausing_games.rst:69 -msgid "By default, all nodes have this property in the \"Inherit\" state. This means, that they will only process (or not) depending on what this same property is set on the parent node. If the parent is set to \"Inherit\" , then the grandparent will be checked and so on. Ultimately, if a state can't be found in any of the grandparents, the pause state in SceneTree is used. This means that, by default, when the game is paused every node will be paused." -msgstr "" - -#: ../../docs/tutorials/scripting/pausing_games.rst:77 -msgid "So the three possible states for a node are:" -msgstr "" - -#: ../../docs/tutorials/scripting/pausing_games.rst:79 +#: ../../docs/tutorials/scripting/pausing_games.rst:62 msgid "**Inherit**: Process depending on the state of the parent, grandparent, etc. The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/scripting/pausing_games.rst:81 +#: ../../docs/tutorials/scripting/pausing_games.rst:64 msgid "**Stop**: Stop the node no matter what (and children in Inherit mode). When paused this node will not process." msgstr "" -#: ../../docs/tutorials/scripting/pausing_games.rst:83 +#: ../../docs/tutorials/scripting/pausing_games.rst:66 msgid "**Process**: Process the node no matter what (and children in Inherit mode). Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/scripting/pausing_games.rst:87 -msgid "Example" +#: ../../docs/tutorials/scripting/pausing_games.rst:69 +msgid "By default, all nodes have this property in the \"Inherit\" state. If the parent is set to \"Inherit\", then the grandparent will be checked and so on. If a state can't be found in any of the grandparents, the pause state in SceneTree is used. This means that, by default, when the game is paused every node will be paused. Several things happen when a node stops processing." msgstr "" -#: ../../docs/tutorials/scripting/pausing_games.rst:89 -msgid "An example of this is creating a popup or panel with controls inside, and set its pause mode to \"Process\" then hide it:" +#: ../../docs/tutorials/scripting/pausing_games.rst:75 +msgid "The ``_process``, ``_physics_process``, ``_input``, and ``_input_event`` functions will not be called. However signals still work and cause their connected function to run, even if that function's script is attached to a node that has its pause mode set to \"Stop\"." msgstr "" -#: ../../docs/tutorials/scripting/pausing_games.rst:94 -msgid "Just by setting the root of the pause popup to \"Process\", all children and grandchildren will inherit that state. This way, this branch of the scene tree will continue working when paused." +#: ../../docs/tutorials/scripting/pausing_games.rst:80 +msgid "Animation nodes will pause their current animation, audio nodes will pause their current audio stream, and particles will pause. These resume automatically when the game is no longer paused." +msgstr "" + +#: ../../docs/tutorials/scripting/pausing_games.rst:84 +msgid "It is important to note that even if a node is processing while the game is paused physics will **NOT** work for it by default. As stated earlier this is because the physics servers are turned off. The physics servers can be made active while the game is paused by using their ``set_active`` methods." +msgstr "" + +#: ../../docs/tutorials/scripting/pausing_games.rst:90 +msgid "Pause Menu Example" +msgstr "" + +#: ../../docs/tutorials/scripting/pausing_games.rst:92 +msgid "Here is an example of a pause menu. Create a popup or panel with controls inside, and set its pause mode to \"Process\" then hide it. By setting the root of the pause popup to \"Process\", all children and grandchildren will inherit that state. This way, this branch of the scene tree will continue working when paused." msgstr "" #: ../../docs/tutorials/scripting/pausing_games.rst:98 @@ -109,11 +101,7 @@ msgid "Finally, make it so when a pause button is pressed (any button will do), msgstr "" #: ../../docs/tutorials/scripting/pausing_games.rst:116 -msgid "To remove the pause, do the opposite when the pause screen is closed:" -msgstr "" - -#: ../../docs/tutorials/scripting/pausing_games.rst:134 -msgid "And that should be all!" +msgid "To unpause, do the opposite when the pause screen is closed:" msgstr "" #: ../../docs/:0 diff --git a/sphinx/templates/tutorials/scripting/resources.pot b/sphinx/templates/tutorials/scripting/resources.pot index 5ad0b09f55..4b98bdade8 100644 --- a/sphinx/templates/tutorials/scripting/resources.pot +++ b/sphinx/templates/tutorials/scripting/resources.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/scene_tree.pot b/sphinx/templates/tutorials/scripting/scene_tree.pot index 017c7f1451..a40585aa52 100644 --- a/sphinx/templates/tutorials/scripting/scene_tree.pot +++ b/sphinx/templates/tutorials/scripting/scene_tree.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/scene_unique_nodes.pot b/sphinx/templates/tutorials/scripting/scene_unique_nodes.pot new file mode 100644 index 0000000000..6f9d9afa99 --- /dev/null +++ b/sphinx/templates/tutorials/scripting/scene_unique_nodes.pot @@ -0,0 +1,53 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2022, 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 , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine 3.5\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/tutorials/scripting/scene_unique_nodes.rst:4 +msgid "Scene Unique Nodes" +msgstr "" + +#: ../../docs/tutorials/scripting/scene_unique_nodes.rst:7 +msgid "Introduction" +msgstr "" + +#: ../../docs/tutorials/scripting/scene_unique_nodes.rst:9 +msgid "There are times in a project where a node needs to be called from a script. However, its position in the tree might change over time as adjustments are made to a scene, such as a button in a UI scene." +msgstr "" + +#: ../../docs/tutorials/scripting/scene_unique_nodes.rst:14 +msgid "In situations like this, a node can be turned into a scene unique node to avoid having to update a script every time its path is changed." +msgstr "" + +#: ../../docs/tutorials/scripting/scene_unique_nodes.rst:19 +msgid "Creating and using them" +msgstr "" + +#: ../../docs/tutorials/scripting/scene_unique_nodes.rst:21 +msgid "In the Scene tree dock, right-click on a node and select **Access as Scene Unique Name** in the context menu." +msgstr "" + +#: ../../docs/tutorials/scripting/scene_unique_nodes.rst:26 +msgid "After checking this, the node will now have a percent symbol (**%**) next to its name in the scene tree:" +msgstr "" + +#: ../../docs/tutorials/scripting/scene_unique_nodes.rst:31 +msgid "To use a unique node in a script, use the ``%`` symbol and the node's name in the path for ``get_node()``. For example:" +msgstr "" + +#: ../../docs/:0 +msgid "Translation status" +msgstr "" diff --git a/sphinx/templates/tutorials/scripting/singletons_autoload.pot b/sphinx/templates/tutorials/scripting/singletons_autoload.pot index 9ad19580f4..037348a706 100644 --- a/sphinx/templates/tutorials/scripting/singletons_autoload.pot +++ b/sphinx/templates/tutorials/scripting/singletons_autoload.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -72,99 +72,107 @@ msgstr "" msgid "Godot won't make an AutoLoad a \"true\" singleton as per the singleton design pattern. It may still be instanced more than once by the user if desired." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:44 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:45 +msgid "If you're creating an autoload as part of an editor plugin, consider :ref:`registering it automatically in the Project Settings ` when the plugin is enabled." +msgstr "" + +#: ../../docs/tutorials/scripting/singletons_autoload.rst:50 msgid "AutoLoad" msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:46 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:52 msgid "You can create an AutoLoad to load a scene or a script that inherits from :ref:`class_Node`." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:51 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:57 msgid "When autoloading a script, a :ref:`class_Node` will be created and the script will be attached to it. This node will be added to the root viewport before any other scenes are loaded." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:57 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:63 msgid "To autoload a scene or script, select **Project > Project Settings** from the menu and switch to the **AutoLoad** tab." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:62 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:68 msgid "Here you can add any number of scenes or scripts. Each entry in the list requires a name, which is assigned as the node's ``name`` property. The order of the entries as they are added to the global scene tree can be manipulated using the up/down arrow keys. Like regular scenes, the engine will read these nodes in top-to-bottom order." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:70 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:76 msgid "This means that any node can access a singleton named \"PlayerVariables\" with:" msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:83 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:89 msgid "If the **Enable** column is checked (which is the default), then the singleton can be accessed directly without requiring ``get_node()``:" msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:96 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:102 msgid "Note that autoload objects (scripts and/or scenes) are accessed just like any other node in the scene tree. In fact, if you look at the running scene tree, you'll see the autoloaded nodes appear:" msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:103 -msgid "Custom scene switcher" -msgstr "" - -#: ../../docs/tutorials/scripting/singletons_autoload.rst:105 -msgid "This tutorial will demonstrate building a scene switcher using autoloads. For basic scene switching, you can use the :ref:`SceneTree.change_scene() ` method (see :ref:`doc_scene_tree` for details). However, if you need more complex behavior when changing scenes, this method provides more functionality." -msgstr "" - -#: ../../docs/tutorials/scripting/singletons_autoload.rst:111 -msgid "To begin, download the template from here: :download:`autoload.zip ` and open it in Godot." +#: ../../docs/tutorials/scripting/singletons_autoload.rst:110 +msgid "Autoloads must **not** be removed using ``free()`` or ``queue_free()`` at runtime, or the engine will crash." msgstr "" #: ../../docs/tutorials/scripting/singletons_autoload.rst:114 -msgid "The project contains two scenes: ``Scene1.tscn`` and ``Scene2.tscn``. Each scene contains a label displaying the scene name and a button with its ``pressed()`` signal connected. When you run the project, it starts in ``Scene1.tscn``. However, pressing the button does nothing." +msgid "Custom scene switcher" msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:120 -msgid "Global.gd" +#: ../../docs/tutorials/scripting/singletons_autoload.rst:116 +msgid "This tutorial will demonstrate building a scene switcher using autoloads. For basic scene switching, you can use the :ref:`SceneTree.change_scene() ` method (see :ref:`doc_scene_tree` for details). However, if you need more complex behavior when changing scenes, this method provides more functionality." msgstr "" #: ../../docs/tutorials/scripting/singletons_autoload.rst:122 +msgid "To begin, download the template from here: :download:`autoload.zip ` and open it in Godot." +msgstr "" + +#: ../../docs/tutorials/scripting/singletons_autoload.rst:125 +msgid "The project contains two scenes: ``Scene1.tscn`` and ``Scene2.tscn``. Each scene contains a label displaying the scene name and a button with its ``pressed()`` signal connected. When you run the project, it starts in ``Scene1.tscn``. However, pressing the button does nothing." +msgstr "" + +#: ../../docs/tutorials/scripting/singletons_autoload.rst:131 +msgid "Global.gd" +msgstr "" + +#: ../../docs/tutorials/scripting/singletons_autoload.rst:133 msgid "Switch to the **Script** tab and create a new script called ``Global.gd``. Make sure it inherits from ``Node``:" msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:127 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:138 msgid "The next step is to add this script to the autoLoad list. Open **Project > Project Settings** from the menu, switch to the **AutoLoad** tab and select the script by clicking the browse button or typing its path: ``res://Global.gd``. Press **Add** to add it to the autoload list:" msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:134 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:145 msgid "Now whenever we run any scene in the project, this script will always be loaded." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:136 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:147 msgid "Returning to the script, it needs to fetch the current scene in the `_ready()` function. Both the current scene (the one with the button) and ``Global.gd`` are children of root, but autoloaded nodes are always first. This means that the last child of root is always the loaded scene." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:168 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:179 msgid "Now we need a function for changing the scene. This function needs to free the current scene and replace it with the requested one." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:237 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:248 msgid "Using :ref:`Object.call_deferred() `, the second function will only run once all code from the current scene has completed. Thus, the current scene will not be removed while it is still being used (i.e. its code is still running)." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:242 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:253 msgid "Finally, we need to fill the empty callback functions in the two scenes:" msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:262 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:273 msgid "and" msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:282 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:293 msgid "Run the project and test that you can switch between scenes by pressing the button." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:287 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:298 msgid "When scenes are small, the transition is instantaneous. However, if your scenes are more complex, they may take a noticeable amount of time to appear. To learn how to handle this, see the next tutorial: :ref:`doc_background_loading`." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:291 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:302 msgid "Alternatively, if the loading time is relatively short (less than 3 seconds or so), you can display a \"loading plaque\" by showing some kind of 2D element just before changing the scene. You can then hide it just after the scene is changed. This can be used to indicate to the player that a scene is being loaded." msgstr "" diff --git a/sphinx/templates/tutorials/scripting/visual_script/custom_visualscript_nodes.pot b/sphinx/templates/tutorials/scripting/visual_script/custom_visualscript_nodes.pot index 6d246c4c73..f863a02282 100644 --- a/sphinx/templates/tutorials/scripting/visual_script/custom_visualscript_nodes.pot +++ b/sphinx/templates/tutorials/scripting/visual_script/custom_visualscript_nodes.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -20,59 +20,67 @@ msgstr "" msgid "Custom VisualScript nodes" msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:6 -msgid "Custom nodes are written in GDScript and can then be used in VisualScript. This is useful for offloading complex code to GDScript and reusing it." -msgstr "" - -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:10 -msgid "Creating a custom node" +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:8 +msgid "`Godot 4.0 will remove VisualScript from core entirely. `__ As a result, creating new projects using visual scripting in Godot is not recommended. Future Godot 4.x releases may have VisualScript reimplemented as an extension." msgstr "" #: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:12 +msgid "While Godot 3.x will keep VisualScript supported, we recommend :ref:`trying out GDScript ` instead, especially if you intend to migrate your project to Godot 4." +msgstr "" + +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:16 +msgid "Custom nodes are written in GDScript and can then be used in VisualScript. This is useful for offloading complex code to GDScript and reusing it." +msgstr "" + +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:20 +msgid "Creating a custom node" +msgstr "" + +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:22 msgid "Create a new script that extends :ref:`class_VisualScriptCustomNode` and put a ``tool`` keyword at the top. This is needed for the script to run in the editor." msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:14 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:24 msgid "There are some functions that can be implemented to set parameters of the custom node. Only add functions that are needed, a ``_has_input_sequence_port`` function is not necessary if it should return ``false`` for example." msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:17 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:27 msgid "The most important part of a custom node is the ``_step`` function. The logic of the node is defined there." msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:19 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:29 msgid "The ``inputs`` parameter holds the value of the input ports." msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:21 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:31 msgid "The ``outputs`` parameter is an array where the indices represent the output port ids. It can be modified to set the values of the output ports." msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:23 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:33 msgid "``start_mode`` can be checked to see if it is the first time ``_step`` is called." msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:25 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:35 msgid "``working_mem`` is persistent each ``_step`` call. It can be used to store information." msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:27 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:37 msgid "If you want to throw an error, for example if the input types are incorrect, you can return the error message as a string. When everything goes right, return the id of the sequence port which should be called next. If your custom node doesn't have any, just return 0." msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:31 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:41 msgid "Example:" msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:94 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:104 msgid "Using a custom node" msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:96 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:106 msgid "To use the script, add a ``CustomNode``, select it and drag your custom node script into the ``script`` property shown in the inspector." msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:100 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:110 msgid "Result:" msgstr "" diff --git a/sphinx/templates/tutorials/scripting/visual_script/getting_started.pot b/sphinx/templates/tutorials/scripting/visual_script/getting_started.pot index deb7e4a3ee..0f793eac60 100644 --- a/sphinx/templates/tutorials/scripting/visual_script/getting_started.pot +++ b/sphinx/templates/tutorials/scripting/visual_script/getting_started.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/visual_script/index.pot b/sphinx/templates/tutorials/scripting/visual_script/index.pot index ed3332f417..3ce61f2fd9 100644 --- a/sphinx/templates/tutorials/scripting/visual_script/index.pot +++ b/sphinx/templates/tutorials/scripting/visual_script/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -20,6 +20,14 @@ msgstr "" msgid "VisualScript" msgstr "" +#: ../../docs/tutorials/scripting/visual_script/index.rst:6 +msgid "`Godot 4.0 will remove VisualScript from core entirely. `__ As a result, creating new projects using visual scripting in Godot is not recommended. Future Godot 4.x releases may have VisualScript reimplemented as an extension." +msgstr "" + +#: ../../docs/tutorials/scripting/visual_script/index.rst:10 +msgid "While Godot 3.x will keep VisualScript supported, we recommend :ref:`trying out GDScript ` instead, especially if you intend to migrate your project to Godot 4." +msgstr "" + #: ../../docs/:0 msgid "Translation status" msgstr "" diff --git a/sphinx/templates/tutorials/scripting/visual_script/nodes_purposes.pot b/sphinx/templates/tutorials/scripting/visual_script/nodes_purposes.pot index e11fb26e3f..e364c18154 100644 --- a/sphinx/templates/tutorials/scripting/visual_script/nodes_purposes.pot +++ b/sphinx/templates/tutorials/scripting/visual_script/nodes_purposes.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/scripting/visual_script/what_is_visual_scripting.pot b/sphinx/templates/tutorials/scripting/visual_script/what_is_visual_scripting.pot index 03ed8e084b..d5e7e6e07e 100644 --- a/sphinx/templates/tutorials/scripting/visual_script/what_is_visual_scripting.pot +++ b/sphinx/templates/tutorials/scripting/visual_script/what_is_visual_scripting.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shaders/advanced_postprocessing.pot b/sphinx/templates/tutorials/shaders/advanced_postprocessing.pot index 6e70c428bc..59d409ce36 100644 --- a/sphinx/templates/tutorials/shaders/advanced_postprocessing.pot +++ b/sphinx/templates/tutorials/shaders/advanced_postprocessing.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shaders/converting_glsl_to_godot_shaders.pot b/sphinx/templates/tutorials/shaders/converting_glsl_to_godot_shaders.pot index 981984597b..c822440c5a 100644 --- a/sphinx/templates/tutorials/shaders/converting_glsl_to_godot_shaders.pot +++ b/sphinx/templates/tutorials/shaders/converting_glsl_to_godot_shaders.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shaders/custom_postprocessing.pot b/sphinx/templates/tutorials/shaders/custom_postprocessing.pot index 920223cbf0..c89e90a5de 100644 --- a/sphinx/templates/tutorials/shaders/custom_postprocessing.pot +++ b/sphinx/templates/tutorials/shaders/custom_postprocessing.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shaders/index.pot b/sphinx/templates/tutorials/shaders/index.pot index 732d2bcc41..f0ebf6b0da 100644 --- a/sphinx/templates/tutorials/shaders/index.pot +++ b/sphinx/templates/tutorials/shaders/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shaders/introduction_to_shaders.pot b/sphinx/templates/tutorials/shaders/introduction_to_shaders.pot index 8c91ff6c16..766d09ae91 100644 --- a/sphinx/templates/tutorials/shaders/introduction_to_shaders.pot +++ b/sphinx/templates/tutorials/shaders/introduction_to_shaders.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shaders/making_trees.pot b/sphinx/templates/tutorials/shaders/making_trees.pot index 3bd972c7b3..7a67b19bbc 100644 --- a/sphinx/templates/tutorials/shaders/making_trees.pot +++ b/sphinx/templates/tutorials/shaders/making_trees.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shaders/screen-reading_shaders.pot b/sphinx/templates/tutorials/shaders/screen-reading_shaders.pot index cb6987a2e6..ce8389d64e 100644 --- a/sphinx/templates/tutorials/shaders/screen-reading_shaders.pot +++ b/sphinx/templates/tutorials/shaders/screen-reading_shaders.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shaders/shader_materials.pot b/sphinx/templates/tutorials/shaders/shader_materials.pot index 4150bfad23..c1afe3cdf6 100644 --- a/sphinx/templates/tutorials/shaders/shader_materials.pot +++ b/sphinx/templates/tutorials/shaders/shader_materials.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shaders/shader_reference/canvas_item_shader.pot b/sphinx/templates/tutorials/shaders/shader_reference/canvas_item_shader.pot index fc8a86c511..c476f4865d 100644 --- a/sphinx/templates/tutorials/shaders/shader_reference/canvas_item_shader.pot +++ b/sphinx/templates/tutorials/shaders/shader_reference/canvas_item_shader.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shaders/shader_reference/index.pot b/sphinx/templates/tutorials/shaders/shader_reference/index.pot index 895df26771..6ceb227ec4 100644 --- a/sphinx/templates/tutorials/shaders/shader_reference/index.pot +++ b/sphinx/templates/tutorials/shaders/shader_reference/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shaders/shader_reference/particle_shader.pot b/sphinx/templates/tutorials/shaders/shader_reference/particle_shader.pot index 32cff371fb..f80959863d 100644 --- a/sphinx/templates/tutorials/shaders/shader_reference/particle_shader.pot +++ b/sphinx/templates/tutorials/shaders/shader_reference/particle_shader.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shaders/shader_reference/shading_language.pot b/sphinx/templates/tutorials/shaders/shader_reference/shading_language.pot index c9bcdaaca5..b88c10d30d 100644 --- a/sphinx/templates/tutorials/shaders/shader_reference/shading_language.pot +++ b/sphinx/templates/tutorials/shaders/shader_reference/shading_language.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -41,14 +41,14 @@ msgid "Most GLSL ES 3.0 datatypes are supported:" msgstr "" #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:21 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:569 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:570 msgid "Type" msgstr "" #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:21 #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:523 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:569 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:643 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:570 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:644 msgid "Description" msgstr "" @@ -61,8 +61,8 @@ msgid "Void datatype, useful only for functions that return nothing." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:25 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:594 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:594 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:595 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:595 msgid "**bool**" msgstr "" @@ -95,8 +95,8 @@ msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:33 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:596 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:596 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:597 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:597 msgid "**int**" msgstr "" @@ -161,8 +161,8 @@ msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:49 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:598 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:598 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:599 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:599 msgid "**float**" msgstr "" @@ -171,7 +171,7 @@ msgid "Floating-point scalar." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:51 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:600 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:601 msgid "**vec2**" msgstr "" @@ -180,7 +180,7 @@ msgid "Two-component vector of floating-point values." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:53 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:602 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:603 msgid "**vec3**" msgstr "" @@ -189,8 +189,8 @@ msgid "Three-component vector of floating-point values." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:55 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:571 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:604 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:572 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:605 msgid "**vec4**" msgstr "" @@ -215,8 +215,8 @@ msgid "3x3 matrix, in column major order." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:61 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:606 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:608 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:607 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:609 msgid "**mat4**" msgstr "" @@ -225,12 +225,12 @@ msgid "4x4 matrix, in column major order." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:63 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:575 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:577 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:579 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:581 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:583 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:585 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:576 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:578 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:580 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:582 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:584 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:586 msgid "**sampler2D**" msgstr "" @@ -727,919 +727,919 @@ msgid "The first argument to ``set_shader_param`` is the name of the uniform in msgstr "" #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:553 -msgid "Any GLSL type except for *void* can be a uniform. Additionally, Godot provides optional shader hints to make the compiler understand for what the uniform is used." +msgid "Any GLSL type except for *void* can be a uniform. Additionally, Godot provides optional shader hints to make the compiler understand for what the uniform is used, and how the editor should allow users to modify it." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:564 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:565 msgid "It's important to understand that textures that are supplied as color require hints for proper sRGB->linear conversion (i.e. ``hint_albedo``), as Godot's 3D engine renders in linear color space." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:566 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:567 msgid "Full list of hints below:" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:569 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:570 msgid "Hint" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:571 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:572 msgid "hint_color" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:571 -msgid "Used as color" +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:572 +msgid "Used as color." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:573 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:574 msgid "**int, float**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:573 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:574 msgid "hint_range(min, max[, step])" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:573 -msgid "Used as range (with min/max/step)" +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:574 +msgid "Restricted to values in a range (with min/max/step)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:575 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:576 msgid "hint_albedo" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:575 -msgid "Used as albedo color, default white" +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:576 +msgid "Used as albedo color, default white." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:577 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:578 msgid "hint_black_albedo" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:577 -msgid "Used as albedo color, default black" +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:578 +msgid "Used as albedo color, default black." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:579 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:580 msgid "hint_normal" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:579 -msgid "Used as normalmap" +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:580 +msgid "Used as normalmap." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:581 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:582 msgid "hint_white" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:581 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:582 msgid "As value, default to white." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:583 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:584 msgid "hint_black" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:583 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:584 msgid "As value, default to black" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:585 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:586 msgid "hint_aniso" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:585 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:586 msgid "As flowmap, default to right." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:588 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:589 msgid "GDScript uses different variable types than GLSL does, so when passing variables from GDScript to shaders, Godot converts the type automatically. Below is a table of the corresponding types:" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:592 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:593 msgid "GDScript type" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:592 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:593 msgid "GLSL type" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:600 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:601 msgid "**Vector2**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:602 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:603 msgid "**Vector3**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:604 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:605 msgid "**Color**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:606 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:607 msgid "**Transform**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:608 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:609 msgid "**Transform2D**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:611 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:612 msgid "Be careful when setting shader uniforms from GDScript, no error will be thrown if the type does not match. Your shader will just exhibit undefined behavior." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:614 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:615 msgid "Uniforms can also be assigned default values:" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:624 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:625 msgid "Built-in variables" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:626 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:627 msgid "A large number of built-in variables are available, like ``UV``, ``COLOR`` and ``VERTEX``. What variables are available depends on the type of shader (``spatial``, ``canvas_item`` or ``particle``) and the function used (``vertex``, ``fragment`` or ``light``). For a list of the build-in variables that are available, please see the corresponding pages:" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:629 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:630 msgid ":ref:`Spatial shaders `" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:630 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:631 msgid ":ref:`Canvas item shaders `" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:631 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:632 msgid ":ref:`Particle shaders `" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:634 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:635 msgid "Built-in functions" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:636 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:637 msgid "A large number of built-in functions are supported, conforming to GLSL ES 3.0. When vec_type (float), vec_int_type, vec_uint_type, vec_bool_type nomenclature is used, it can be scalar or vector." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:639 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:640 msgid "For a list of the functions that are not available in the GLES2 backend, please see the :ref:`Differences between GLES2 and GLES3 doc `." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:643 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:644 msgid "Function" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:645 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:646 msgid "vec_type **radians** (vec_type degrees)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:645 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:646 msgid "Convert degrees to radians" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:647 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:648 msgid "vec_type **degrees** (vec_type radians)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:647 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:648 msgid "Convert radians to degrees" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:649 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:650 msgid "vec_type **sin** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:649 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:650 msgid "Sine" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:651 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:652 msgid "vec_type **cos** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:651 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:652 msgid "Cosine" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:653 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:654 msgid "vec_type **tan** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:653 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:654 msgid "Tangent" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:655 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:656 msgid "vec_type **asin** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:655 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:656 msgid "Arcsine" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:657 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:658 msgid "vec_type **acos** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:657 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:658 msgid "Arccosine" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:659 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:660 msgid "vec_type **atan** (vec_type y_over_x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:659 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:660 msgid "Arctangent" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:661 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:662 msgid "vec_type **atan** (vec_type y, vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:661 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:662 msgid "Arctangent to convert vector to angle" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:663 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:664 msgid "vec_type **sinh** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:663 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:664 msgid "Hyperbolic sine" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:665 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:666 msgid "vec_type **cosh** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:665 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:666 msgid "Hyperbolic cosine" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:667 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:668 msgid "vec_type **tanh** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:667 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:668 msgid "Hyperbolic tangent" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:669 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:670 msgid "vec_type **asinh** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:669 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:670 msgid "Inverse hyperbolic sine" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:671 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:672 msgid "vec_type **acosh** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:671 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:672 msgid "Inverse hyperbolic cosine" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:673 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:674 msgid "vec_type **atanh** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:673 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:674 msgid "Inverse hyperbolic tangent" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:675 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:676 msgid "vec_type **pow** (vec_type x, vec_type y)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:675 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:676 msgid "Power (undefined if ``x`` < 0 or if ``x`` = 0 and ``y`` <= 0)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:677 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:678 msgid "vec_type **exp** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:677 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:678 msgid "Base-e exponential" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:679 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:680 msgid "vec_type **exp2** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:679 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:680 msgid "Base-2 exponential" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:681 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:682 msgid "vec_type **log** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:681 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:682 msgid "Natural logarithm" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:683 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:684 msgid "vec_type **log2** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:683 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:684 msgid "Base-2 logarithm" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:685 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:686 msgid "vec_type **sqrt** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:685 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:686 msgid "Square root" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:687 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:688 msgid "vec_type **inversesqrt** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:687 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:688 msgid "Inverse square root" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:689 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:690 msgid "vec_type **abs** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:689 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:691 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:690 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:692 msgid "Absolute" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:691 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:692 msgid "ivec_type **abs** (ivec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:693 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:694 msgid "vec_type **sign** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:693 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:695 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:694 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:696 msgid "Sign" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:695 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:696 msgid "ivec_type **sign** (ivec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:697 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:698 msgid "vec_type **floor** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:697 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:698 msgid "Floor" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:699 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:700 msgid "vec_type **round** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:699 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:700 msgid "Round" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:701 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:702 msgid "vec_type **roundEven** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:701 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:702 msgid "Round to the nearest even number" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:703 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:704 msgid "vec_type **trunc** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:703 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:704 msgid "Truncation" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:705 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:706 msgid "vec_type **ceil** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:705 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:706 msgid "Ceil" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:707 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:708 msgid "vec_type **fract** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:707 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:708 msgid "Fractional" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:709 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:710 msgid "vec_type **mod** (vec_type x, vec_type y)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:709 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:711 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:710 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:712 msgid "Remainder" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:711 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:712 msgid "vec_type **mod** (vec_type x , float y)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:713 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:714 msgid "vec_type **modf** (vec_type x, out vec_type i)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:713 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:714 msgid "Fractional of ``x``, with ``i`` as integer part" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:715 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:716 msgid "vec_type **min** (vec_type a, vec_type b)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:715 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:716 msgid "Minimum" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:717 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:718 msgid "vec_type **max** (vec_type a, vec_type b)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:717 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:718 msgid "Maximum" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:719 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:720 msgid "vec_type **clamp** (vec_type x, vec_type min, vec_type max)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:719 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:720 msgid "Clamp to ``min..max``" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:721 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:722 msgid "float **mix** (float a, float b, float c)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:721 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:722 msgid "Linear interpolate" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:723 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:724 msgid "vec_type **mix** (vec_type a, vec_type b, float c)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:723 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:724 msgid "Linear interpolate (scalar coefficient)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:725 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:726 msgid "vec_type **mix** (vec_type a, vec_type b, vec_type c)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:725 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:726 msgid "Linear interpolate (vector coefficient)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:727 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:728 msgid "vec_type **mix** (vec_type a, vec_type b, bvec_type c)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:727 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:728 msgid "Linear interpolate (boolean-vector selection)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:729 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:730 msgid "vec_type **step** (vec_type a, vec_type b)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:729 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:730 msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:731 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:732 msgid "vec_type **step** (float a, vec_type b)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:731 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:732 msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:733 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:734 msgid "vec_type **smoothstep** (vec_type a, vec_type b, vec_type c)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:733 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:735 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:734 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:736 msgid "Hermite interpolate" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:735 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:736 msgid "vec_type **smoothstep** (float a, float b, vec_type c)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:737 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:738 msgid "bvec_type **isnan** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:737 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:738 msgid "Returns ``true`` if scalar or vector component is ``NaN``" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:739 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:740 msgid "bvec_type **isinf** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:739 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:740 msgid "Returns ``true`` if scalar or vector component is ``INF``" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:741 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:742 msgid "ivec_type **floatBitsToInt** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:741 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:742 msgid "Float->Int bit copying, no conversion" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:743 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:744 msgid "uvec_type **floatBitsToUint** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:743 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:744 msgid "Float->UInt bit copying, no conversion" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:745 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:746 msgid "vec_type **intBitsToFloat** (ivec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:745 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:746 msgid "Int->Float bit copying, no conversion" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:747 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:748 msgid "vec_type **uintBitsToFloat** (uvec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:747 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:748 msgid "UInt->Float bit copying, no conversion" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:749 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:750 msgid "float **length** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:749 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:750 msgid "Vector length" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:751 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:752 msgid "float **distance** (vec_type a, vec_type b)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:751 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:752 msgid "Distance between vectors i.e ``length(a - b)``" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:753 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:754 msgid "float **dot** (vec_type a, vec_type b)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:753 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:754 msgid "Dot product" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:755 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:756 msgid "vec3 **cross** (vec3 a, vec3 b)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:755 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:756 msgid "Cross product" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:757 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:758 msgid "vec_type **normalize** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:757 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:758 msgid "Normalize to unit length" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:759 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:760 msgid "vec3 **reflect** (vec3 I, vec3 N)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:759 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:760 msgid "Reflect" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:761 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:762 msgid "vec3 **refract** (vec3 I, vec3 N, float eta)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:761 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:762 msgid "Refract" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:763 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:764 msgid "vec_type **faceforward** (vec_type N, vec_type I, vec_type Nref)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:763 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:764 msgid "If ``dot(Nref, I)`` < 0, return N, otherwise –N" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:765 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:766 msgid "mat_type **matrixCompMult** (mat_type x, mat_type y)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:765 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:766 msgid "Matrix component multiplication" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:767 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:768 msgid "mat_type **outerProduct** (vec_type column, vec_type row)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:767 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:768 msgid "Matrix outer product" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:769 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:770 msgid "mat_type **transpose** (mat_type m)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:769 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:770 msgid "Transpose matrix" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:771 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:772 msgid "float **determinant** (mat_type m)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:771 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:772 msgid "Matrix determinant" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:773 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:774 msgid "mat_type **inverse** (mat_type m)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:773 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:774 msgid "Inverse matrix" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:775 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:776 msgid "bvec_type **lessThan** (vec_type x, vec_type y)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:775 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:776 msgid "Bool vector comparison on < int/uint/float vectors" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:777 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:778 msgid "bvec_type **greaterThan** (vec_type x, vec_type y)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:777 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:778 msgid "Bool vector comparison on > int/uint/float vectors" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:779 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:780 msgid "bvec_type **lessThanEqual** (vec_type x, vec_type y)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:779 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:780 msgid "Bool vector comparison on <= int/uint/float vectors" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:781 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:782 msgid "bvec_type **greaterThanEqual** (vec_type x, vec_type y)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:781 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:782 msgid "Bool vector comparison on >= int/uint/float vectors" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:783 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:784 msgid "bvec_type **equal** (vec_type x, vec_type y)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:783 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:784 msgid "Bool vector comparison on == int/uint/float vectors" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:785 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:786 msgid "bvec_type **notEqual** (vec_type x, vec_type y)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:785 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:786 msgid "Bool vector comparison on != int/uint/float vectors" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:787 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:788 msgid "bool **any** (bvec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:787 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:788 msgid "Any component is ``true``" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:789 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:790 msgid "bool **all** (bvec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:789 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:790 msgid "All components are ``true``" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:791 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:792 msgid "bvec_type **not** (bvec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:791 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:792 msgid "Invert boolean vector" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:793 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:794 msgid "ivec2 **textureSize** (sampler2D_type s, int lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:793 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:794 msgid "Get the size of a 2D texture" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:795 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:796 msgid "ivec3 **textureSize** (sampler2DArray_type s, int lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:795 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:796 msgid "Get the size of a 2D texture array" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:797 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:798 msgid "ivec3 **textureSize** (sampler3D s, int lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:797 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:798 msgid "Get the size of a 3D texture" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:799 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:800 msgid "ivec2 **textureSize** (samplerCube s, int lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:799 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:800 msgid "Get the size of a cubemap texture" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:801 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:802 msgid "vec4_type **texture** (sampler2D_type s, vec2 uv [, float bias])" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:801 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:802 msgid "Perform a 2D texture read" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:803 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:804 msgid "vec4_type **texture** (sampler2DArray_type s, vec3 uv [, float bias])" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:803 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:804 msgid "Perform a 2D texture array read" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:805 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:806 msgid "vec4_type **texture** (sampler3D_type s, vec3 uv [, float bias])" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:805 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:806 msgid "Perform a 3D texture read" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:807 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:808 msgid "vec4 **texture** (samplerCube s, vec3 uv [, float bias])" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:807 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:808 msgid "Perform a cubemap texture read" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:809 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:810 msgid "vec4_type **textureProj** (sampler2D_type s, vec3 uv [, float bias])" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:809 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:811 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:810 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:812 msgid "Perform a 2D texture read with projection" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:811 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:812 msgid "vec4_type **textureProj** (sampler2D_type s, vec4 uv [, float bias])" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:813 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:814 msgid "vec4_type **textureProj** (sampler3D_type s, vec4 uv [, float bias])" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:813 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:814 msgid "Perform a 3D texture read with projection" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:815 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:816 msgid "vec4_type **textureLod** (sampler2D_type s, vec2 uv, float lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:815 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:816 msgid "Perform a 2D texture read at custom mipmap" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:817 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:818 msgid "vec4_type **textureLod** (sampler2DArray_type s, vec3 uv, float lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:817 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:818 msgid "Perform a 2D texture array read at custom mipmap" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:819 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:820 msgid "vec4_type **textureLod** (sampler3D_type s, vec3 uv, float lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:819 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:821 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:820 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:822 msgid "Perform a 3D texture read at custom mipmap" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:821 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:822 msgid "vec4 **textureLod** (samplerCube s, vec3 uv, float lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:823 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:824 msgid "vec4_type **textureProjLod** (sampler2D_type s, vec3 uv, float lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:823 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:825 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:824 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:826 msgid "Perform a 2D texture read with projection/LOD" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:825 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:826 msgid "vec4_type **textureProjLod** (sampler2D_type s, vec4 uv, float lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:827 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:828 msgid "vec4_type **textureProjLod** (sampler3D_type s, vec4 uv, float lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:827 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:828 msgid "Perform a 3D texture read with projection/LOD" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:829 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:830 msgid "vec4_type **texelFetch** (sampler2D_type s, ivec2 uv, int lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:829 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:831 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:833 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:830 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:832 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:834 msgid "Fetch a single texel using integer coordinates" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:831 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:832 msgid "vec4_type **texelFetch** (sampler2DArray_type s, ivec3 uv, int lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:833 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:834 msgid "vec4_type **texelFetch** (sampler3D_type s, ivec3 uv, int lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:835 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:836 msgid "vec_type **dFdx** (vec_type p)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:835 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:836 msgid "Derivative in ``x`` using local differencing" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:837 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:838 msgid "vec_type **dFdy** (vec_type p)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:837 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:838 msgid "Derivative in ``y`` using local differencing" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:839 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:840 msgid "vec_type **fwidth** (vec_type p)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:839 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:840 msgid "Sum of absolute derivative in ``x`` and ``y``" msgstr "" diff --git a/sphinx/templates/tutorials/shaders/shader_reference/spatial_shader.pot b/sphinx/templates/tutorials/shaders/shader_reference/spatial_shader.pot index f948c2bce7..9a378352a8 100644 --- a/sphinx/templates/tutorials/shaders/shader_reference/spatial_shader.pot +++ b/sphinx/templates/tutorials/shaders/shader_reference/spatial_shader.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -35,8 +35,8 @@ msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:15 #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:94 #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:139 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:191 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:316 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:210 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:339 msgid "Description" msgstr "" @@ -298,13 +298,13 @@ msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:94 #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:139 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:191 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:316 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:210 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:339 msgid "Built-in" msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:96 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:318 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:341 msgid "in float **TIME**" msgstr "" @@ -357,14 +357,14 @@ msgid "This allows you to easily adjust the shader to a particle system using de msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:141 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:193 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:320 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:212 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:343 msgid "in vec2 **VIEWPORT_SIZE**" msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:141 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:193 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:320 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:212 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:343 msgid "Size of viewport (in pixels)." msgstr "" @@ -373,20 +373,20 @@ msgid "inout mat4 **WORLD_MATRIX**" msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:143 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:198 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:327 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:217 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:350 msgid "Model space to world space transform." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:145 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:200 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:329 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:219 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:352 msgid "in mat4 **INV_CAMERA_MATRIX**" msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:145 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:200 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:329 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:219 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:352 msgid "World space to view space transform." msgstr "" @@ -395,20 +395,20 @@ msgid "inout mat4 **PROJECTION_MATRIX**" msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:147 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:204 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:333 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:223 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:356 msgid "View space to clip space transform." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:149 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:202 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:331 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:221 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:354 msgid "in mat4 **CAMERA_MATRIX**" msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:149 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:202 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:331 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:221 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:354 msgid "View space to world space transform." msgstr "" @@ -425,8 +425,8 @@ msgid "inout mat4 **INV_PROJECTION_MATRIX**" msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:153 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:206 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:335 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:225 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:358 msgid "Clip space to view space transform." msgstr "" @@ -447,7 +447,7 @@ msgid "If written to, overrides final vertex position." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:159 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:214 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:233 msgid "inout vec3 **NORMAL**" msgstr "" @@ -456,7 +456,7 @@ msgid "Normal in local coordinates." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:161 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:216 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:235 msgid "inout vec3 **TANGENT**" msgstr "" @@ -465,7 +465,7 @@ msgid "Tangent in local coordinates." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:163 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:218 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:237 msgid "inout vec3 **BINORMAL**" msgstr "" @@ -474,7 +474,7 @@ msgid "Binormal in local coordinates." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:165 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:242 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:261 msgid "out float **ROUGHNESS**" msgstr "" @@ -499,14 +499,14 @@ msgid "UV secondary channel." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:171 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:228 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:349 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:247 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:372 msgid "in bool **OUTPUT_IS_SRGB**" msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:171 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:228 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:349 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:247 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:372 msgid "``true`` when calculations happen in sRGB color space (``true`` in GLES2, ``false`` in GLES3)." msgstr "" @@ -542,407 +542,423 @@ msgstr "" msgid "Instance custom data (for particles, mostly)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:184 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:185 +msgid "``MODELVIEW_MATRIX`` combines both the ``WORLD_MATRIX`` and ``INV_CAMERA_MATRIX`` and is better suited when floating point issues may arise. For example, if the object is very far away from the world origin, you may run into floating point issues when using the seperated ``WORLD_MATRIX`` and ``INV_CAMERA_MATRIX``." +msgstr "" + +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:188 msgid "Fragment built-ins" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:186 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:190 msgid "The default use of a Godot fragment processor function is to set up the material properties of your object and to let the built-in renderer handle the final shading. However, you are not required to use all these properties, and if you don't write to them, Godot will optimize away the corresponding functionality." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:195 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:322 -msgid "in vec4 **FRAGCOORD**" -msgstr "" - -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:195 -msgid "Coordinate of pixel center in screen space. ``xy`` specifies position in window, ``z`` specifies fragment depth if ``DEPTH`` is not used. Origin is lower-left." -msgstr "" - -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:198 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:327 -msgid "in mat4 **WORLD_MATRIX**" -msgstr "" - -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:204 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:333 -msgid "in mat4 **PROJECTION_MATRIX**" +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:194 +msgid "Below are examples of common variables calculated using the built-ins:" msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:206 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:335 -msgid "in mat4 **INV_PROJECTION_MATRIX**" -msgstr "" - -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:208 -msgid "in vec3 **VERTEX**" -msgstr "" - -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:208 -msgid "Vertex that comes from vertex function (default, in view space)." -msgstr "" - -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:210 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:343 -msgid "in vec3 **VIEW**" -msgstr "" - -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:210 -msgid "Vector from camera to fragment position (in view space)." -msgstr "" - -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:212 -msgid "in bool **FRONT_FACING**" -msgstr "" - -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:212 -msgid "``true`` if current face is front face." +msgid "A commonly used alternative to ``WORLD_MATRIX[3].xyz`` is to use ``vec3 origin = (WORLD_MATRIX * vec4(0,0,0,1)).xyz``. It is more efficient to use ``WORLD_MATRIX[3].xyz`` as it avoids the matrix multiplication." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:214 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:345 +msgid "in vec4 **FRAGCOORD**" +msgstr "" + +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:214 +msgid "Coordinate of pixel center in screen space. ``xy`` specifies position in window, ``z`` specifies fragment depth if ``DEPTH`` is not used. Origin is lower-left." +msgstr "" + +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:217 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:350 +msgid "in mat4 **WORLD_MATRIX**" +msgstr "" + +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:223 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:356 +msgid "in mat4 **PROJECTION_MATRIX**" +msgstr "" + +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:225 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:358 +msgid "in mat4 **INV_PROJECTION_MATRIX**" +msgstr "" + +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:227 +msgid "in vec3 **VERTEX**" +msgstr "" + +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:227 +msgid "Vertex that comes from vertex function (default, in view space)." +msgstr "" + +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:229 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:366 +msgid "in vec3 **VIEW**" +msgstr "" + +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:229 +msgid "Vector from camera to fragment position (in view space)." +msgstr "" + +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:231 +msgid "in bool **FRONT_FACING**" +msgstr "" + +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:231 +msgid "``true`` if current face is front face." +msgstr "" + +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:233 msgid "Normal that comes from vertex function (default, in view space)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:216 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:235 msgid "Tangent that comes from vertex function." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:218 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:237 msgid "Binormal that comes from vertex function." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:220 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:239 msgid "out vec3 **NORMALMAP**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:220 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:239 msgid "Set normal here if reading normal from a texture instead of NORMAL." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:222 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:241 msgid "out float **NORMALMAP_DEPTH**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:222 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:241 msgid "Depth from variable above. Defaults to 1.0." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:224 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:339 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:243 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:362 msgid "in vec2 **UV**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:224 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:339 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:243 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:362 msgid "UV that comes from vertex function." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:226 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:341 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:245 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:364 msgid "in vec2 **UV2**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:226 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:341 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:245 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:364 msgid "UV2 that comes from vertex function." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:230 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:249 msgid "in vec4 **COLOR**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:230 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:249 msgid "COLOR that comes from vertex function." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:232 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:251 msgid "out vec3 **ALBEDO**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:232 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:251 msgid "Albedo (default white)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:234 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:356 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:253 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:379 msgid "out float **ALPHA**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:234 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:356 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:253 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:379 msgid "Alpha (0..1); if written to, the material will go to the transparent pipeline." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:236 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:255 msgid "out float **ALPHA_SCISSOR**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:236 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:255 msgid "If written to, values below a certain amount of alpha are discarded." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:238 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:257 msgid "out float **METALLIC**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:238 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:257 msgid "Metallic (0..1)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:240 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:259 msgid "out float **SPECULAR**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:240 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:259 msgid "Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:242 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:261 msgid "Roughness (0..1)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:244 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:263 msgid "out float **RIM**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:244 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:263 msgid "Rim (0..1). If used, Godot calculates rim lighting." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:246 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:265 msgid "out float **RIM_TINT**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:246 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:265 msgid "Rim Tint, goes from 0 (white) to 1 (albedo). If used, Godot calculates rim lighting." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:248 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:267 msgid "out float **CLEARCOAT**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:248 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:267 msgid "Small added specular blob. If used, Godot calculates Clearcoat." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:250 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:269 msgid "out float **CLEARCOAT_GLOSS**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:250 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:269 msgid "Gloss of Clearcoat. If used, Godot calculates Clearcoat." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:252 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:271 msgid "out float **ANISOTROPY**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:252 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:271 msgid "For distorting the specular blob according to tangent space." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:254 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:273 msgid "out vec2 **ANISOTROPY_FLOW**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:254 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:273 msgid "Distortion direction, use with flowmaps." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:256 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:275 msgid "out float **SSS_STRENGTH**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:256 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:275 msgid "Strength of Subsurface Scattering. If used, Subsurface Scattering will be applied to object." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:258 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:277 msgid "out vec3 **TRANSMISSION**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:258 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:277 msgid "Transmission mask (default 0,0,0). Allows light to pass through object. Only applied if used." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:260 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:279 msgid "out vec3 **EMISSION**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:260 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:279 msgid "Emission color (can go over 1,1,1 for HDR)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:262 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:281 msgid "out float **AO**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:262 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:281 msgid "Strength of Ambient Occlusion. For use with pre-baked AO." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:264 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:283 msgid "out float **AO_LIGHT_AFFECT**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:264 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:283 msgid "How much AO affects lights (0..1; default 0)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:266 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:285 msgid "sampler2D **SCREEN_TEXTURE**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:266 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:285 msgid "Built-in Texture for reading from the screen. Mipmaps contain increasingly blurred copies." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:268 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:287 msgid "sampler2D **DEPTH_TEXTURE**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:268 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:287 msgid "Built-in Texture for reading depth from the screen. Must convert to linear using INV_PROJECTION." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:270 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:289 msgid "out float **DEPTH**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:270 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:289 msgid "Custom depth value (0..1)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:272 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:291 msgid "in vec2 **SCREEN_UV**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:272 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:291 msgid "Screen UV coordinate for current pixel." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:274 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:293 msgid "in vec2 **POINT_COORD**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:274 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:293 msgid "Point Coordinate for drawing points with POINT_SIZE." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:279 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:370 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:298 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:393 msgid "Shaders going through the transparent pipeline when ``ALPHA`` is written to may exhibit transparency sorting issues. Read the :ref:`transparency sorting section in the 3D rendering limitations page ` for more information and ways to avoid issues." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:285 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:304 msgid "Light built-ins" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:287 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:306 msgid "Writing light processor functions is completely optional. You can skip the light function by setting render_mode to ``unshaded``. If no light function is written, Godot will use the material properties written to in the fragment function to calculate the lighting for you (subject to the render_mode)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:292 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:311 msgid "To write a light function, assign something to ``DIFFUSE_LIGHT`` or ``SPECULAR_LIGHT``. Assigning nothing means no light is processed." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:295 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:314 msgid "The light function is called for every light in every pixel. It is called within a loop for each light type." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:298 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:317 msgid "Below is an example of a custom light function using a Lambertian lighting model:" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:306 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:325 msgid "If you want the lights to add together, add the light contribution to ``DIFFUSE_LIGHT`` using ``+=``, rather than overwriting it." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:310 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:329 +msgid "In GLES2, lights will always be added together even if you override ``DIFFUSE_LIGHT`` using ``=``. This is due to lighting being computed in multiple passes (one for each light), unlike GLES3." +msgstr "" + +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:333 msgid "The ``light()`` function won't be run if the ``vertex_lighting`` render mode is enabled, or if **Rendering > Quality > Shading > Force Vertex Shading** is enabled in the Project Settings. (It's enabled by default on mobile platforms.)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:318 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:341 msgid "Elapsed total time in seconds." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:322 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:345 msgid "Coordinate of pixel center in screen space. ``xy`` specifies position in window, ``z`` specifies fragment depth if ``DEPTH`` is not used. Origin is lower-left." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:337 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:360 msgid "in vec3 **NORMAL**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:337 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:360 msgid "Normal vector, in view space." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:343 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:366 msgid "View vector, in view space." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:345 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:368 msgid "in vec3 **LIGHT**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:345 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:368 msgid "Light Vector, in view space." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:347 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:370 msgid "in vec3 **ATTENUATION**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:347 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:370 msgid "Attenuation based on distance or shadow." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:352 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:375 msgid "in vec3 **ALBEDO**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:352 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:375 msgid "Base albedo." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:354 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:377 msgid "in vec3 **LIGHT_COLOR**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:354 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:377 msgid "Color of light multiplied by energy." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:359 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:382 msgid "in float **ROUGHNESS**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:359 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:382 msgid "Roughness." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:361 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:384 msgid "in vec3 **TRANSMISSION**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:361 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:384 msgid "Transmission mask from fragment function." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:363 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:386 msgid "out vec3 **DIFFUSE_LIGHT**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:363 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:386 msgid "Diffuse light result." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:365 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:388 msgid "out vec3 **SPECULAR_LIGHT**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:365 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:388 msgid "Specular light result." msgstr "" diff --git a/sphinx/templates/tutorials/shaders/shaders_style_guide.pot b/sphinx/templates/tutorials/shaders/shaders_style_guide.pot index a55edbf637..8b3b9b41b7 100644 --- a/sphinx/templates/tutorials/shaders/shaders_style_guide.pot +++ b/sphinx/templates/tutorials/shaders/shaders_style_guide.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shaders/using_viewport_as_texture.pot b/sphinx/templates/tutorials/shaders/using_viewport_as_texture.pot index 3fe755712b..2d9f50bacd 100644 --- a/sphinx/templates/tutorials/shaders/using_viewport_as_texture.pot +++ b/sphinx/templates/tutorials/shaders/using_viewport_as_texture.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shaders/visual_shaders.pot b/sphinx/templates/tutorials/shaders/visual_shaders.pot index 1523469ed8..4fbca96150 100644 --- a/sphinx/templates/tutorials/shaders/visual_shaders.pot +++ b/sphinx/templates/tutorials/shaders/visual_shaders.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shaders/your_first_shader/index.pot b/sphinx/templates/tutorials/shaders/your_first_shader/index.pot index d1ebdd554e..2faa649c4f 100644 --- a/sphinx/templates/tutorials/shaders/your_first_shader/index.pot +++ b/sphinx/templates/tutorials/shaders/your_first_shader/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shaders/your_first_shader/your_first_2d_shader.pot b/sphinx/templates/tutorials/shaders/your_first_shader/your_first_2d_shader.pot index 7a594b8ee8..036b012211 100644 --- a/sphinx/templates/tutorials/shaders/your_first_shader/your_first_2d_shader.pot +++ b/sphinx/templates/tutorials/shaders/your_first_shader/your_first_2d_shader.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shaders/your_first_shader/your_first_3d_shader.pot b/sphinx/templates/tutorials/shaders/your_first_shader/your_first_3d_shader.pot index 3c211a0ff2..6e392d6bca 100644 --- a/sphinx/templates/tutorials/shaders/your_first_shader/your_first_3d_shader.pot +++ b/sphinx/templates/tutorials/shaders/your_first_shader/your_first_3d_shader.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,7 +21,7 @@ msgid "Your first 3D shader" msgstr "" #: ../../docs/tutorials/shaders/your_first_shader/your_first_3d_shader.rst:6 -msgid "You have decided to start writing your own custom Spatial shader. Maybe you saw a cool trick online that was done with shaders, or you have found that the :ref:`SpatialMaterial ` isn't quite meeting your needs. Either way, you have decided to write your own and now you need figure out where to start." +msgid "You have decided to start writing your own custom Spatial shader. Maybe you saw a cool trick online that was done with shaders, or you have found that the :ref:`SpatialMaterial ` isn't quite meeting your needs. Either way, you have decided to write your own and now you need to figure out where to start." msgstr "" #: ../../docs/tutorials/shaders/your_first_shader/your_first_3d_shader.rst:12 diff --git a/sphinx/templates/tutorials/shaders/your_first_shader/your_second_3d_shader.pot b/sphinx/templates/tutorials/shaders/your_first_shader/your_second_3d_shader.pot index e617ef2acc..55651db1c9 100644 --- a/sphinx/templates/tutorials/shaders/your_first_shader/your_second_3d_shader.pot +++ b/sphinx/templates/tutorials/shaders/your_first_shader/your_second_3d_shader.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/ui/bbcode_in_richtextlabel.pot b/sphinx/templates/tutorials/ui/bbcode_in_richtextlabel.pot index c5fd481448..6d9206e696 100644 --- a/sphinx/templates/tutorials/ui/bbcode_in_richtextlabel.pot +++ b/sphinx/templates/tutorials/ui/bbcode_in_richtextlabel.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -465,71 +465,75 @@ msgstr "" msgid "You can extend the :ref:`class_RichTextEffect` resource type to create your own custom BBCode tags. You begin by extending the :ref:`class_RichTextEffect` resource type. Add the ``tool`` prefix to your GDScript file if you wish to have these custom effects run within the editor itself. The RichTextLabel does not need to have a script attached, nor does it need to be running in ``tool`` mode. The new effect will be activable in the Inspector through the **Custom Effects** property." msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:226 -msgid "There is only one function that you need to extend: ``_process_custom_fx(char_fx)``. Optionally, you can also provide a custom BBCode identifier simply by adding a member name ``bbcode``. The code will check the ``bbcode`` property automatically or will use the name of the file to determine what the BBCode tag should be." +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:228 +msgid "If the custom effect is not registered within the RichTextLabel's **Custom Effects** property, no effect will be visible and the original tag will be left as-is." msgstr "" #: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:232 -msgid "``_process_custom_fx``" -msgstr "" - -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:234 -msgid "This is where the logic of each effect takes place and is called once per character during the draw phase of text rendering. This passes in a :ref:`class_CharFXTransform` object, which holds a few variables to control how the associated character is rendered:" +msgid "There is only one function that you need to extend: ``_process_custom_fx(char_fx)``. Optionally, you can also provide a custom BBCode identifier simply by adding a member name ``bbcode``. The code will check the ``bbcode`` property automatically or will use the name of the file to determine what the BBCode tag should be." msgstr "" #: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:238 -msgid "``identity`` specifies which custom effect is being processed. You should use that for code flow control." +msgid "``_process_custom_fx``" msgstr "" #: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:240 -msgid "``relative_index`` tells you how far into a given custom effect block you are in as an index." -msgstr "" - -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:242 -msgid "``absolute_index`` tells you how far into the entire text you are as an index." -msgstr "" - -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:243 -msgid "``elapsed_time`` is the total amount of time the text effect has been running." +msgid "This is where the logic of each effect takes place and is called once per character during the draw phase of text rendering. This passes in a :ref:`class_CharFXTransform` object, which holds a few variables to control how the associated character is rendered:" msgstr "" #: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:244 -msgid "``visible`` will tell you whether the character is visible or not and will also allow you to hide a given portion of text." +msgid "``identity`` specifies which custom effect is being processed. You should use that for code flow control." msgstr "" #: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:246 -msgid "``offset`` is an offset position relative to where the given character should render under normal circumstances." +msgid "``relative_index`` tells you how far into a given custom effect block you are in as an index." msgstr "" #: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:248 -msgid "``color`` is the color of a given character." +msgid "``absolute_index`` tells you how far into the entire text you are as an index." msgstr "" #: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:249 -msgid "Finally, ``env`` is a :ref:`class_Dictionary` of parameters assigned to a given custom effect. You can use :ref:`get() ` with an optional default value to retrieve each parameter, if specified by the user. For example ``[custom_fx spread=0.5 color=#FFFF00]test[/custom_fx]`` would have a float ``spread`` and Color ``color`` parameters in its ` `env`` Dictionary. See below for more usage examples." +msgid "``elapsed_time`` is the total amount of time the text effect has been running." +msgstr "" + +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:250 +msgid "``visible`` will tell you whether the character is visible or not and will also allow you to hide a given portion of text." +msgstr "" + +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:252 +msgid "``offset`` is an offset position relative to where the given character should render under normal circumstances." +msgstr "" + +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:254 +msgid "``color`` is the color of a given character." msgstr "" #: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:255 +msgid "Finally, ``env`` is a :ref:`class_Dictionary` of parameters assigned to a given custom effect. You can use :ref:`get() ` with an optional default value to retrieve each parameter, if specified by the user. For example ``[custom_fx spread=0.5 color=#FFFF00]test[/custom_fx]`` would have a float ``spread`` and Color ``color`` parameters in its ` `env`` Dictionary. See below for more usage examples." +msgstr "" + +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:261 msgid "The last thing to note about this function is that it is necessary to return a boolean ``true`` value to verify that the effect processed correctly. This way, if there's a problem with rendering a given character, it will back out of rendering custom effects entirely until the user fixes whatever error cropped up in their custom effect logic." msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:260 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:266 msgid "Here are some examples of custom effects:" msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:263 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:269 msgid "Ghost" msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:286 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:292 msgid "Pulse" msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:313 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:319 msgid "Matrix" msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:348 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:354 msgid "This will add a few new BBCode commands, which can be used like so:" msgstr "" diff --git a/sphinx/templates/tutorials/ui/control_node_gallery.pot b/sphinx/templates/tutorials/ui/control_node_gallery.pot index 9a4cb81b4d..ca5137c9ad 100644 --- a/sphinx/templates/tutorials/ui/control_node_gallery.pot +++ b/sphinx/templates/tutorials/ui/control_node_gallery.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/ui/custom_gui_controls.pot b/sphinx/templates/tutorials/ui/custom_gui_controls.pot index b9ae3c3153..c113702cd5 100644 --- a/sphinx/templates/tutorials/ui/custom_gui_controls.pot +++ b/sphinx/templates/tutorials/ui/custom_gui_controls.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/ui/gui_containers.pot b/sphinx/templates/tutorials/ui/gui_containers.pot index c4b0299447..bdd4fd60b1 100644 --- a/sphinx/templates/tutorials/ui/gui_containers.pot +++ b/sphinx/templates/tutorials/ui/gui_containers.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/ui/gui_navigation.pot b/sphinx/templates/tutorials/ui/gui_navigation.pot index e2ef4dd1c4..1783243e33 100644 --- a/sphinx/templates/tutorials/ui/gui_navigation.pot +++ b/sphinx/templates/tutorials/ui/gui_navigation.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/ui/gui_skinning.pot b/sphinx/templates/tutorials/ui/gui_skinning.pot index 1a640999e7..5845932c47 100644 --- a/sphinx/templates/tutorials/ui/gui_skinning.pot +++ b/sphinx/templates/tutorials/ui/gui_skinning.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -120,95 +120,107 @@ msgstr "" msgid "You can also define your own theme types, and additionally customize both built-in controls and your own controls. Because built-in controls have no knowledge of your custom theme types, you must utilize scripts to access those items. All control nodes have several methods that allow to fetch theme items from the theme that is applied to them. Those methods accept the theme type as one of the arguments." msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:131 +#: ../../docs/tutorials/ui/gui_skinning.rst:130 +msgid "To give more customization opportunities types can also be linked together as type variations. This is another use-case for custom theme types. For example, a theme can contain a type ``Header`` which can be marked as a variation of the base ``Label`` type. An individual ``Label`` control can then be set to use the ``Header`` variation for its type, and every time a theme item is requested from a theme this variation will be used before any other type. This allows to store various presets of theme items for the same class of the control node in the single ``Theme`` resource." +msgstr "" + +#: ../../docs/tutorials/ui/gui_skinning.rst:140 +msgid "Only variations available from the default theme or defined in the custom project theme are shown in the Inspector dock as options. You can still input manually the name of a variation that is defined outside of those two places, but it is recommended to keep all variations to the project theme." +msgstr "" + +#: ../../docs/tutorials/ui/gui_skinning.rst:145 +msgid "You can learn more about creating and using theme type variations in a :ref:`dedicated article `." +msgstr "" + +#: ../../docs/tutorials/ui/gui_skinning.rst:149 msgid "Customizing a control" msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:133 +#: ../../docs/tutorials/ui/gui_skinning.rst:151 msgid "Each control node can be customized directly without the use of themes. This is called local overrides. Every theme property from the control's class reference can be overridden directly on the control itself, using either the Inspector dock, or scripts. This allows to make granular changes to a particular part of the UI, while not affecting anything else in the project, including this control's children." msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:143 +#: ../../docs/tutorials/ui/gui_skinning.rst:161 msgid "Local overrides are less useful for the visual flair of your user interface, especially if you aim for consistency. However, for layout nodes these are essential. Nodes such as :ref:`BoxContainer ` and :ref:`GridContainer ` use theme constants for defining separation between their children, and :ref:`MarginContainer ` stores its customizable margins in its theme items." msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:150 +#: ../../docs/tutorials/ui/gui_skinning.rst:168 msgid "Whenever a control has a local theme item override, this is the value that it uses. Values provided by the theme are ignored." msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:156 +#: ../../docs/tutorials/ui/gui_skinning.rst:174 msgid "Customizing a project" msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:158 +#: ../../docs/tutorials/ui/gui_skinning.rst:176 msgid "Out of the box each project adopts the default project theme provided by Godot. The default theme itself is constant and cannot be changed, but its items can be overridden with a custom theme. Custom themes can be applied in two ways: as a project setting, and as a node property throughout the tree of control nodes." msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:163 +#: ../../docs/tutorials/ui/gui_skinning.rst:181 msgid "There are two project settings that can be adjusted to affect your entire project: :ref:`gui/theme/custom` allows you to set a custom project-wide theme, and :ref:`gui/theme/custom_font` does the same to the default fallback font. When a theme item is requested by a control node the custom project theme, if present, is checked first. Only if it doesn't have the item the default theme is checked." msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:170 +#: ../../docs/tutorials/ui/gui_skinning.rst:188 msgid "This allows you to configure the default look of every Godot control with a single theme resource, but you can go more granular than that. Every control node also has a :ref:`theme ` property, which allows you to set a custom theme for the branch of nodes starting with that control. This means that the control and all of its children, and their children in turn, would first check that custom theme resource before falling back on the project and the default themes." msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:178 +#: ../../docs/tutorials/ui/gui_skinning.rst:196 msgid "Instead of changing the project setting you can set the custom theme resource to the root-most control node of your entire UI branch to almost the same effect. While in the running project it will behave as expected, individual scenes will still display using the default theme when previewing or running them directly. To fix that you can set the same theme resource to the root control of each individual scene." msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:184 +#: ../../docs/tutorials/ui/gui_skinning.rst:202 msgid "For example, you can have a certain style for buttons in your project theme, but want a different look for buttons inside of a popup dialog. You can set a custom theme resource to the root control of your popup and define a different style for buttons within that resource. As long as the chain of control nodes between the root of the popup and the buttons is uninterrupted, those buttons will use the styles defined in the theme resource that is closest to them. All other controls will still be styled using the project-wide theme and the default theme styles." msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:192 +#: ../../docs/tutorials/ui/gui_skinning.rst:210 msgid "To sum it up, for an arbitrary control its theme item lookup would look something like this:" msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:195 +#: ../../docs/tutorials/ui/gui_skinning.rst:213 msgid "Check for local overrides of the same data type and name." msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:196 +#: ../../docs/tutorials/ui/gui_skinning.rst:214 msgid "Using control's class name and parent class names:" msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:198 +#: ../../docs/tutorials/ui/gui_skinning.rst:216 msgid "Check every control starting from itself and see if it has a theme property set;" msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:199 +#: ../../docs/tutorials/ui/gui_skinning.rst:217 msgid "If it does, check that theme for the matching item of the same name, data and theme type;" msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:200 +#: ../../docs/tutorials/ui/gui_skinning.rst:218 msgid "If there is no custom theme or it doesn't have the item, move to the parent control;" msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:201 +#: ../../docs/tutorials/ui/gui_skinning.rst:219 msgid "Repeat steps a-c. until the root of the tree is reached, or a non-control node is reached." msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:203 +#: ../../docs/tutorials/ui/gui_skinning.rst:221 msgid "Using control's class name check the project-wide theme, if it's present." msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:204 +#: ../../docs/tutorials/ui/gui_skinning.rst:222 msgid "Using control's class name check the default theme." msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:206 +#: ../../docs/tutorials/ui/gui_skinning.rst:224 msgid "Even if the item doesn't exist in any theme, a corresponding default value for that data type will be returned." msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:210 +#: ../../docs/tutorials/ui/gui_skinning.rst:228 msgid "Beyond controls" msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:212 +#: ../../docs/tutorials/ui/gui_skinning.rst:230 msgid "Naturally, themes are an ideal type of resource for storing configuration for something visual. While the support for theming is built into control nodes, other nodes can use them as well, just like any other resource." msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:216 +#: ../../docs/tutorials/ui/gui_skinning.rst:234 msgid "An example of using themes for something beyond controls can be a modulation of sprites for the same units on different teams in a strategy game. A theme resource can define a collection of colors, and sprites (with a help from scripts) can use those colors to draw the texture. The main benefit being that you could make different themes using the same theme items for red, blue, and green teams, and swap them with a single resource change." msgstr "" diff --git a/sphinx/templates/tutorials/ui/gui_theme_type_variations.pot b/sphinx/templates/tutorials/ui/gui_theme_type_variations.pot new file mode 100644 index 0000000000..e83feed2b8 --- /dev/null +++ b/sphinx/templates/tutorials/ui/gui_theme_type_variations.pot @@ -0,0 +1,81 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2022, 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 , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine 3.5\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:4 +msgid "Theme type variations" +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:6 +msgid "When designing a user interface there may be times when a :ref:`Control ` node needs to have a different look than what is normally defined by a :ref:`Theme `. Every control node has theme property overrides, which allow you to redefine the styling for each individual UI element." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:14 +msgid "This approach quickly becomes hard to manage, if you need to share the same custom look between several controls. Imagine that you use gray, blue, and red variants of :ref:`Button ` throughout your project. Setting it up every time you add a new button element to your interface is a tedious task." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:19 +msgid "To help with the organization and to better utilize the :ref:`power of themes ` you can use theme type variations. These work like normal theme types, but instead of being self-sufficient and standalone they extend another, base type." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:23 +msgid "Following the previous example, your theme can have some styles, colors, and fonts defined for the ``Button`` type, customizing the looks of every button element in your UI. To then have a gray, red, or blue button you would create a new type, e.g. ``GrayButton``, and mark it as a variation of the base ``Button`` type." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:28 +msgid "Type variations can replace some aspects of the base type, but keep others. They can also define properties that the base style hasn't defined. For example, your ``GrayButton`` can override the ``normal`` style from the base ``Button`` and add ``font_color`` that ``Button`` has never defined. The control will use a combination of both types giving priority to the type variation." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:35 +msgid "The way controls resolve what theme items they use from each type and each theme is better described in the :ref:`Customizing a project ` section of the \"Introduction to GUI skinning\" article." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:40 +msgid "Creating a type variation" +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:42 +msgid "To create a type variation open the theme editor, then click the plus icon next to the **Type** dropdown on the right side of the editor. Type in what you want to name your theme type variation in the text box, then click **Add Type**." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:46 +msgid "Below the **Type** dropdown are the property tabs. Switch to the tab with a wrench and screwdriver icon." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:52 +msgid "Click on the plus icon next to the **Base Type** field. You can select the base type there, which would typically be the name of a control node class (e.g., ``Button``, ``Label``, etc). Type variations can also chain and extend other type variations. This works in the same way control nodes inherit styling of their base class. For example, ``CheckButton`` inherits styles from ``Button`` because corresponding node types extend each other." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:58 +msgid "After you select the base type, you should now be able to see its properties on the other tabs in the theme editor. You can edit them as usual." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:62 +msgid "Using a type variation" +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:64 +msgid "Now that a type variation has been created you can apply it to your nodes. In the inspector dock, under the **Theme** property of a control node, you can find the **Theme Type Variation** property. It is empty by default, which means that only the base type has an effect on this node." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:69 +msgid "You can either select a type variations from a dropdown list, or input its name manually. Variations appear on the list only if the type variation belongs to the project-wide theme, which you can configure in the project settings. For any other case you have to input the name of the variation manually. Click on the pencil icon to the right. Then type in the name of the type variation and click the check mark icon or press enter. If a type variation with that name exists it will now be used by the node." +msgstr "" + +#: ../../docs/:0 +msgid "Translation status" +msgstr "" diff --git a/sphinx/templates/tutorials/ui/gui_using_theme_editor.pot b/sphinx/templates/tutorials/ui/gui_using_theme_editor.pot index 609054e3b1..4d3535da06 100644 --- a/sphinx/templates/tutorials/ui/gui_using_theme_editor.pot +++ b/sphinx/templates/tutorials/ui/gui_using_theme_editor.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/ui/index.pot b/sphinx/templates/tutorials/ui/index.pot index 2b6989cf45..ddb9816b91 100644 --- a/sphinx/templates/tutorials/ui/index.pot +++ b/sphinx/templates/tutorials/ui/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -28,11 +28,11 @@ msgstr "" msgid "Godot features an in-depth skinning/theming system for control nodes. The pages in this section explain the benefits of that system and how to set it up in your projects." msgstr "" -#: ../../docs/tutorials/ui/index.rst:28 +#: ../../docs/tutorials/ui/index.rst:29 msgid "Control node tutorials" msgstr "" -#: ../../docs/tutorials/ui/index.rst:30 +#: ../../docs/tutorials/ui/index.rst:31 msgid "The following articles cover specific details of using particular control nodes." msgstr "" diff --git a/sphinx/templates/tutorials/ui/size_and_anchors.pot b/sphinx/templates/tutorials/ui/size_and_anchors.pot index 301f60a08e..1c8947fa42 100644 --- a/sphinx/templates/tutorials/ui/size_and_anchors.pot +++ b/sphinx/templates/tutorials/ui/size_and_anchors.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/vr/index.pot b/sphinx/templates/tutorials/vr/index.pot index e16e61f9f2..21d1e4cdc1 100644 --- a/sphinx/templates/tutorials/vr/index.pot +++ b/sphinx/templates/tutorials/vr/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/vr/oculus_mobile/developing_for_oculus_quest.pot b/sphinx/templates/tutorials/vr/oculus_mobile/developing_for_oculus_quest.pot index 8aaec15671..28fce4dc6b 100644 --- a/sphinx/templates/tutorials/vr/oculus_mobile/developing_for_oculus_quest.pot +++ b/sphinx/templates/tutorials/vr/oculus_mobile/developing_for_oculus_quest.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/vr/oculus_mobile/index.pot b/sphinx/templates/tutorials/vr/oculus_mobile/index.pot index e7755a8e7a..26322ea08b 100644 --- a/sphinx/templates/tutorials/vr/oculus_mobile/index.pot +++ b/sphinx/templates/tutorials/vr/oculus_mobile/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/vr/openvr/index.pot b/sphinx/templates/tutorials/vr/openvr/index.pot index a37793be04..ef511b428f 100644 --- a/sphinx/templates/tutorials/vr/openvr/index.pot +++ b/sphinx/templates/tutorials/vr/openvr/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/vr/openvr/vr_starter_tutorial/index.pot b/sphinx/templates/tutorials/vr/openvr/vr_starter_tutorial/index.pot index 8e2eb9da89..a8699b281d 100644 --- a/sphinx/templates/tutorials/vr/openvr/vr_starter_tutorial/index.pot +++ b/sphinx/templates/tutorials/vr/openvr/vr_starter_tutorial/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/vr/openvr/vr_starter_tutorial/vr_starter_tutorial_part_one.pot b/sphinx/templates/tutorials/vr/openvr/vr_starter_tutorial/vr_starter_tutorial_part_one.pot index 636ec2465f..9420c1d45a 100644 --- a/sphinx/templates/tutorials/vr/openvr/vr_starter_tutorial/vr_starter_tutorial_part_one.pot +++ b/sphinx/templates/tutorials/vr/openvr/vr_starter_tutorial/vr_starter_tutorial_part_one.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/vr/openvr/vr_starter_tutorial/vr_starter_tutorial_part_two.pot b/sphinx/templates/tutorials/vr/openvr/vr_starter_tutorial/vr_starter_tutorial_part_two.pot index b8a9fe101a..21d860356f 100644 --- a/sphinx/templates/tutorials/vr/openvr/vr_starter_tutorial/vr_starter_tutorial_part_two.pot +++ b/sphinx/templates/tutorials/vr/openvr/vr_starter_tutorial/vr_starter_tutorial_part_two.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/vr/openxr/deploy_on_quest.pot b/sphinx/templates/tutorials/vr/openxr/deploy_on_quest.pot index aadba07068..eaa8ac52f3 100644 --- a/sphinx/templates/tutorials/vr/openxr/deploy_on_quest.pot +++ b/sphinx/templates/tutorials/vr/openxr/deploy_on_quest.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/vr/openxr/enable_plugin.pot b/sphinx/templates/tutorials/vr/openxr/enable_plugin.pot index 8efbdda895..d51e2b9371 100644 --- a/sphinx/templates/tutorials/vr/openxr/enable_plugin.pot +++ b/sphinx/templates/tutorials/vr/openxr/enable_plugin.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/vr/openxr/handtracking.pot b/sphinx/templates/tutorials/vr/openxr/handtracking.pot index 4717574ded..a8e39f8378 100644 --- a/sphinx/templates/tutorials/vr/openxr/handtracking.pot +++ b/sphinx/templates/tutorials/vr/openxr/handtracking.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/vr/openxr/index.pot b/sphinx/templates/tutorials/vr/openxr/index.pot index 03993fddad..ee4d6f6e6e 100644 --- a/sphinx/templates/tutorials/vr/openxr/index.pot +++ b/sphinx/templates/tutorials/vr/openxr/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/vr/openxr/passthrough.pot b/sphinx/templates/tutorials/vr/openxr/passthrough.pot index 09e40453e3..2f4b272374 100644 --- a/sphinx/templates/tutorials/vr/openxr/passthrough.pot +++ b/sphinx/templates/tutorials/vr/openxr/passthrough.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/vr/openxr/runtime_selection.pot b/sphinx/templates/tutorials/vr/openxr/runtime_selection.pot index e14190cdac..2b82399f29 100644 --- a/sphinx/templates/tutorials/vr/openxr/runtime_selection.pot +++ b/sphinx/templates/tutorials/vr/openxr/runtime_selection.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/vr/xr_primer.pot b/sphinx/templates/tutorials/vr/xr_primer.pot index 5580a343a4..6d9fe59631 100644 --- a/sphinx/templates/tutorials/vr/xr_primer.pot +++ b/sphinx/templates/tutorials/vr/xr_primer.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/templates_list.txt b/templates_list.txt index 65479a0b4d..da2e5854b4 100644 --- a/templates_list.txt +++ b/templates_list.txt @@ -76,11 +76,13 @@ tutorials/3d/portals/using_objects_in_rooms_and_portals.pot tutorials/3d/portals/advanced_room_and_portal_usage.pot tutorials/3d/portals/editing_rooms_and_portals.pot tutorials/3d/portals/rooms_and_portals_example.pot +tutorials/3d/3d_text.pot tutorials/animation/index.pot tutorials/animation/introduction.pot tutorials/animation/cutout_animation.pot tutorials/animation/2d_skeletons.pot tutorials/animation/animation_tree.pot +tutorials/animation/playing_videos.pot tutorials/assets_pipeline/index.pot tutorials/assets_pipeline/import_process.pot tutorials/assets_pipeline/importing_images.pot @@ -174,11 +176,11 @@ tutorials/performance/using_servers.pot tutorials/performance/cpu_optimization.pot tutorials/performance/gpu_optimization.pot tutorials/performance/using_multimesh.pot +tutorials/performance/batching.pot tutorials/performance/optimizing_3d_performance.pot tutorials/performance/vertex_animation/index.pot tutorials/performance/vertex_animation/animating_thousands_of_fish.pot tutorials/performance/vertex_animation/controlling_thousands_of_fish.pot -tutorials/performance/batching.pot tutorials/performance/threads/thread_safe_apis.pot tutorials/performance/threads/using_multiple_threads.pot tutorials/physics/index.pot @@ -191,6 +193,11 @@ tutorials/physics/ragdoll_system.pot tutorials/physics/kinematic_character_2d.pot tutorials/physics/soft_body.pot tutorials/physics/collision_shapes_3d.pot +tutorials/physics/interpolation/index.pot +tutorials/physics/interpolation/physics_interpolation_quick_start_guide.pot +tutorials/physics/interpolation/physics_interpolation_introduction.pot +tutorials/physics/interpolation/using_physics_interpolation.pot +tutorials/physics/interpolation/advanced_physics_interpolation.pot tutorials/platform/index.pot tutorials/platform/android/index.pot tutorials/platform/android/android_plugin.pot @@ -258,6 +265,7 @@ tutorials/scripting/filesystem.pot tutorials/scripting/resources.pot tutorials/scripting/singletons_autoload.pot tutorials/scripting/scene_tree.pot +tutorials/scripting/scene_unique_nodes.pot tutorials/shaders/index.pot tutorials/shaders/introduction_to_shaders.pot tutorials/shaders/shader_reference/index.pot @@ -286,6 +294,7 @@ tutorials/ui/gui_navigation.pot tutorials/ui/control_node_gallery.pot tutorials/ui/gui_skinning.pot tutorials/ui/gui_using_theme_editor.pot +tutorials/ui/gui_theme_type_variations.pot tutorials/ui/bbcode_in_richtextlabel.pot tutorials/vr/index.pot tutorials/vr/xr_primer.pot diff --git a/weblate/docs.pot b/weblate/docs.pot index 3281ed79a6..cbcb8611a7 100644 --- a/weblate/docs.pot +++ b/weblate/docs.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Godot Engine 3.4\n" +"Project-Id-Version: Godot Engine 3.5\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2022-06-08 13:53+0200\n" +"POT-Creation-Date: 2022-09-09 16:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -46,7 +46,7 @@ msgid "Class reference" msgstr "" #: ../../docs/index.rst:2 -msgid "Godot Docs – *3.4* branch" +msgid "Godot Docs – *3.5* branch" msgstr "" #: ../../docs/index.rst:6 @@ -57,11 +57,10 @@ msgstr "" #: ../../docs/index.rst:10 msgid "" -"This is the documentation for the stable 3.4 branch. Looking for the " -"documentation of the current **development** branch? `Have a look here " -"`_. You can also browse the " -"documentation for the current stable `3.3 `_ branch." +"This is the documentation for the 3.5 branch. Looking for the documentation " +"of the current **development** branch? `Have a look here `_. You can also browse the documentation for the " +"current stable `3.4 `_ branch." msgstr "" #: ../../docs/index.rst:18 @@ -168,6 +167,7 @@ msgstr "" #: ../../docs/tutorials/3d/using_gridmaps.rst:7 #: ../../docs/tutorials/3d/using_multi_mesh_instance.rst:7 #: ../../docs/tutorials/3d/portals/rooms_and_portals_example.rst:9 +#: ../../docs/tutorials/3d/3d_text.rst:7 #: ../../docs/tutorials/animation/2d_skeletons.rst:7 #: ../../docs/tutorials/animation/animation_tree.rst:7 #: ../../docs/tutorials/audio/audio_buses.rst:7 @@ -195,6 +195,7 @@ msgstr "" #: ../../docs/tutorials/physics/ray-casting.rst:7 #: ../../docs/tutorials/physics/ragdoll_system.rst:7 #: ../../docs/tutorials/physics/kinematic_character_2d.rst:7 +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:4 #: ../../docs/tutorials/platform/android/android_plugin.rst:7 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:11 #: ../../docs/tutorials/plugins/editor/spatial_gizmos.rst:7 @@ -204,9 +205,11 @@ msgstr "" #: ../../docs/tutorials/scripting/gdnative/what_is_gdnative.rst:7 #: ../../docs/tutorials/scripting/gdnative/gdnative_c_example.rst:7 #: ../../docs/tutorials/scripting/gdnative/gdnative_cpp_example.rst:7 +#: ../../docs/tutorials/scripting/pausing_games.rst:7 #: ../../docs/tutorials/scripting/filesystem.rst:7 #: ../../docs/tutorials/scripting/singletons_autoload.rst:7 #: ../../docs/tutorials/scripting/scene_tree.rst:7 +#: ../../docs/tutorials/scripting/scene_unique_nodes.rst:7 #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:7 #: ../../docs/tutorials/shaders/your_first_shader/your_first_2d_shader.rst:7 #: ../../docs/tutorials/shaders/shader_materials.rst:7 @@ -474,14 +477,14 @@ msgstr "" msgid "**For the editor:**" msgstr "" -#: ../../docs/about/faq.rst:38 ../../docs/about/faq.rst:200 +#: ../../docs/about/faq.rst:38 ../../docs/about/faq.rst:202 #: ../../docs/tutorials/rendering/jitter_stutter.rst:59 #: ../../docs/development/compiling/compiling_with_mono.rst:335 msgid "Windows" msgstr "" -#: ../../docs/about/faq.rst:39 ../../docs/about/faq.rst:45 -#: ../../docs/about/faq.rst:211 +#: ../../docs/about/faq.rst:39 ../../docs/about/faq.rst:47 +#: ../../docs/about/faq.rst:213 #: ../../docs/tutorials/editor/default_key_mapping.rst:27 #: ../../docs/tutorials/editor/default_key_mapping.rst:92 #: ../../docs/tutorials/editor/default_key_mapping.rst:145 @@ -500,73 +503,82 @@ msgstr "" msgid "macOS" msgstr "" -#: ../../docs/about/faq.rst:40 ../../docs/about/faq.rst:46 +#: ../../docs/about/faq.rst:40 ../../docs/about/faq.rst:48 msgid "X11 (Linux, \\*BSD)" msgstr "" +#: ../../docs/about/faq.rst:41 +msgid ":ref:`Web `" +msgstr "" + #: ../../docs/about/faq.rst:42 -msgid "**For exporting your games:**" +msgid "Android (experimental)" msgstr "" #: ../../docs/about/faq.rst:44 +msgid "**For exporting your games:**" +msgstr "" + +#: ../../docs/about/faq.rst:46 msgid "Windows (and UWP)" msgstr "" -#: ../../docs/about/faq.rst:47 +#: ../../docs/about/faq.rst:49 #: ../../docs/tutorials/export/exporting_basics.rst:326 +#: ../../docs/tutorials/export/one-click_deploy.rst:66 #: ../../docs/tutorials/rendering/jitter_stutter.rst:90 #: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "Android" msgstr "" -#: ../../docs/about/faq.rst:48 +#: ../../docs/about/faq.rst:50 #: ../../docs/tutorials/export/exporting_basics.rst:382 #: ../../docs/tutorials/rendering/jitter_stutter.rst:96 #: ../../docs/development/compiling/compiling_with_mono.rst:329 msgid "iOS" msgstr "" -#: ../../docs/about/faq.rst:49 +#: ../../docs/about/faq.rst:51 msgid "Web" msgstr "" -#: ../../docs/about/faq.rst:51 +#: ../../docs/about/faq.rst:53 msgid "" "Both 32- and 64-bit binaries are supported where it makes sense, with 64 " "being the default." msgstr "" -#: ../../docs/about/faq.rst:54 +#: ../../docs/about/faq.rst:56 msgid "" "Some users also report building and using Godot successfully on ARM-based " "systems with Linux, like the Raspberry Pi." msgstr "" -#: ../../docs/about/faq.rst:57 +#: ../../docs/about/faq.rst:59 msgid "" "Additionally, there is some unofficial third-party work being done on " "building for some consoles. However, none of this is included in the default " "build scripts or export templates at this time." msgstr "" -#: ../../docs/about/faq.rst:61 +#: ../../docs/about/faq.rst:63 msgid "" "For more on this, see the sections on :ref:`exporting ` and :ref:`compiling Godot yourself `." msgstr "" -#: ../../docs/about/faq.rst:65 +#: ../../docs/about/faq.rst:67 msgid "Which programming languages are supported in Godot?" msgstr "" -#: ../../docs/about/faq.rst:67 +#: ../../docs/about/faq.rst:69 msgid "" "The officially supported languages for Godot are GDScript, Visual Scripting, " "C#, and C++. See the subcategories for each language in the :ref:`scripting " "` section." msgstr "" -#: ../../docs/about/faq.rst:71 +#: ../../docs/about/faq.rst:73 msgid "" "If you are just starting out with either Godot or game development in " "general, GDScript is the recommended language to learn and use since it is " @@ -576,7 +588,7 @@ msgid "" "provide a fast, friendly, and capable way of developing your games." msgstr "" -#: ../../docs/about/faq.rst:78 +#: ../../docs/about/faq.rst:80 msgid "" "Note that C# support is still relatively new, and as such, you may encounter " "some issues along the way. Our friendly and hard-working development " @@ -587,7 +599,7 @@ msgid "" "troubleshooting." msgstr "" -#: ../../docs/about/faq.rst:85 +#: ../../docs/about/faq.rst:87 msgid "" "As for new languages, support is possible via third parties using the " "GDNative / NativeScript / PluginScript facilities. (See the question about " @@ -596,11 +608,11 @@ msgid "" "and `Nim `_." msgstr "" -#: ../../docs/about/faq.rst:93 +#: ../../docs/about/faq.rst:95 msgid "What is GDScript and why should I use it?" msgstr "" -#: ../../docs/about/faq.rst:95 +#: ../../docs/about/faq.rst:97 msgid "" "GDScript is Godot's integrated scripting language. It was built from the " "ground up to maximize Godot's potential in the least amount of code, " @@ -611,7 +623,7 @@ msgid "" "`GDScript scripting guide `." msgstr "" -#: ../../docs/about/faq.rst:102 +#: ../../docs/about/faq.rst:104 msgid "" "There are several reasons to use GDScript--especially when you are " "prototyping, in alpha/beta stages of your project, or are not creating the " @@ -619,7 +631,7 @@ msgid "" "complexity**." msgstr "" -#: ../../docs/about/faq.rst:106 +#: ../../docs/about/faq.rst:108 msgid "" "The original intent of creating a tightly integrated, custom scripting " "language for Godot was two-fold: first, it reduces the amount of time " @@ -632,7 +644,7 @@ msgid "" "a large set of languages." msgstr "" -#: ../../docs/about/faq.rst:114 +#: ../../docs/about/faq.rst:116 msgid "" "Since Godot is an open-source project, it was imperative from the start to " "prioritize a more integrated and seamless experience over attracting " @@ -645,18 +657,18 @@ msgid "" "GDScript will grow on you." msgstr "" -#: ../../docs/about/faq.rst:123 +#: ../../docs/about/faq.rst:125 msgid "" "More information about getting comfortable with GDScript or dynamically " "typed languages can be found in the :ref:`doc_gdscript_more_efficiently` " "tutorial." msgstr "" -#: ../../docs/about/faq.rst:127 +#: ../../docs/about/faq.rst:129 msgid "What were the motivations behind creating GDScript?" msgstr "" -#: ../../docs/about/faq.rst:129 +#: ../../docs/about/faq.rst:131 msgid "" "In the early days, the engine used the `Lua `__ " "scripting language. Lua is fast, but creating bindings to an object oriented " @@ -665,24 +677,24 @@ msgid "" "also proved difficult to embed." msgstr "" -#: ../../docs/about/faq.rst:135 +#: ../../docs/about/faq.rst:137 msgid "" "The main reasons for creating a custom scripting language for Godot were:" msgstr "" -#: ../../docs/about/faq.rst:137 +#: ../../docs/about/faq.rst:139 msgid "" "Poor threading support in most script VMs, and Godot uses threads (Lua, " "Python, Squirrel, JavaScript, ActionScript, etc.)." msgstr "" -#: ../../docs/about/faq.rst:139 +#: ../../docs/about/faq.rst:141 msgid "" "Poor class-extending support in most script VMs, and adapting to the way " "Godot works is highly inefficient (Lua, Python, JavaScript)." msgstr "" -#: ../../docs/about/faq.rst:141 +#: ../../docs/about/faq.rst:143 msgid "" "Many existing languages have horrible interfaces for binding to C++, " "resulting in large amount of code, bugs, bottlenecks, and general " @@ -690,34 +702,34 @@ msgid "" "a great engine, not a great amount of integrations." msgstr "" -#: ../../docs/about/faq.rst:144 +#: ../../docs/about/faq.rst:146 msgid "" "No native vector types (vector3, matrix4, etc.), resulting in highly reduced " "performance when using custom types (Lua, Python, Squirrel, JavaScript, " "ActionScript, etc.)." msgstr "" -#: ../../docs/about/faq.rst:147 +#: ../../docs/about/faq.rst:149 msgid "" "Garbage collector results in stalls or unnecessarily large memory usage " "(Lua, Python, JavaScript, ActionScript, etc.)." msgstr "" -#: ../../docs/about/faq.rst:149 +#: ../../docs/about/faq.rst:151 msgid "" "Difficulty to integrate with the code editor for providing code completion, " "live editing, etc. (all of them). This is well-supported by GDScript." msgstr "" -#: ../../docs/about/faq.rst:153 +#: ../../docs/about/faq.rst:155 msgid "GDScript was designed to curtail the issues above, and more." msgstr "" -#: ../../docs/about/faq.rst:156 +#: ../../docs/about/faq.rst:158 msgid "What type of 3D model formats does Godot support?" msgstr "" -#: ../../docs/about/faq.rst:158 +#: ../../docs/about/faq.rst:160 msgid "" "Godot supports Collada via the `OpenCollada `_ exporter (Maya, 3DSMax). If you are " @@ -725,23 +737,23 @@ msgid "" "godotengine.org/download>`_." msgstr "" -#: ../../docs/about/faq.rst:161 +#: ../../docs/about/faq.rst:163 msgid "As of Godot 3.0, glTF is supported." msgstr "" -#: ../../docs/about/faq.rst:163 +#: ../../docs/about/faq.rst:165 msgid "" "FBX is supported via the Open Asset Import library. However, FBX is " "proprietary so we recommend using other formats listed above, if suitable " "for your workflow." msgstr "" -#: ../../docs/about/faq.rst:167 +#: ../../docs/about/faq.rst:169 msgid "" "Will [insert closed SDK such as FMOD, GameWorks, etc.] be supported in Godot?" msgstr "" -#: ../../docs/about/faq.rst:169 +#: ../../docs/about/faq.rst:171 msgid "" "The aim of Godot is to create a free and open-source MIT-licensed engine " "that is modular and extendable. There are no plans for the core engine " @@ -749,20 +761,20 @@ msgid "" "SDKs, as integrating with these would go against Godot's ethos." msgstr "" -#: ../../docs/about/faq.rst:174 +#: ../../docs/about/faq.rst:176 msgid "" "That said, because Godot is open-source and modular, nothing prevents you or " "anyone else interested in adding those libraries as a module and shipping " "your game with them--as either open- or closed-source." msgstr "" -#: ../../docs/about/faq.rst:178 +#: ../../docs/about/faq.rst:180 msgid "" "To see how support for your SDK of choice could still be provided, look at " "the Plugins question below." msgstr "" -#: ../../docs/about/faq.rst:181 +#: ../../docs/about/faq.rst:183 msgid "" "If you know of a third-party SDK that is not supported by Godot but that " "offers free and open-source integration, consider starting the integration " @@ -770,12 +782,12 @@ msgid "" "community, and it grows along with ambitious community contributors like you." msgstr "" -#: ../../docs/about/faq.rst:187 +#: ../../docs/about/faq.rst:189 msgid "" "How do I install the Godot editor on my system (for desktop integration)?" msgstr "" -#: ../../docs/about/faq.rst:189 +#: ../../docs/about/faq.rst:191 msgid "" "Since you don't need to actually install Godot on your system to run it, " "this means desktop integration is not performed automatically. There are two " @@ -787,24 +799,24 @@ msgid "" "integration." msgstr "" -#: ../../docs/about/faq.rst:197 +#: ../../docs/about/faq.rst:199 msgid "" "Alternatively, you can manually perform the steps that an installer would do " "for you:" msgstr "" -#: ../../docs/about/faq.rst:202 +#: ../../docs/about/faq.rst:204 msgid "" "Move the Godot executable to a stable location (i.e. outside of your " "Downloads folder), so you don't accidentally move it and break the shortcut " "in the future." msgstr "" -#: ../../docs/about/faq.rst:204 +#: ../../docs/about/faq.rst:206 msgid "Right-click the Godot executable and choose **Create Shortcut**." msgstr "" -#: ../../docs/about/faq.rst:205 +#: ../../docs/about/faq.rst:207 msgid "" "Move the created shortcut to ``%LOCALAPPDATA%\\Microsoft\\Windows\\Start " "Menu\\Programs``. This is the user-wide location for shortcuts that will " @@ -812,26 +824,26 @@ msgid "" "clicking the executable and choosing **Pin to Task Bar**." msgstr "" -#: ../../docs/about/faq.rst:213 +#: ../../docs/about/faq.rst:215 msgid "" "Drag the extracted Godot application to ``/Applications/Godot.app``, then " "drag it to the Dock if desired. Spotlight will be able to find Godot as long " "as it's in ``/Applications`` or ``~/Applications``." msgstr "" -#: ../../docs/about/faq.rst:218 +#: ../../docs/about/faq.rst:220 #: ../../docs/tutorials/inputs/controllers_gamepads_joysticks.rst:233 msgid "Linux" msgstr "" -#: ../../docs/about/faq.rst:220 +#: ../../docs/about/faq.rst:222 msgid "" "Move the Godot binary to a stable location (i.e. outside of your Downloads " "folder), so you don't accidentally move it and break the shortcut in the " "future." msgstr "" -#: ../../docs/about/faq.rst:222 +#: ../../docs/about/faq.rst:224 msgid "" "Rename and move the Godot binary to a location present in your ``PATH`` " "environment variable. This is typically ``/usr/local/bin/godot`` or ``/usr/" @@ -840,7 +852,7 @@ msgid "" "` by entering ``godot``." msgstr "" -#: ../../docs/about/faq.rst:228 +#: ../../docs/about/faq.rst:230 msgid "" "If you cannot move the Godot editor binary to a protected location, you can " "keep the binary somewhere in your home directory, and modify the ``Path=`` " @@ -848,7 +860,7 @@ msgid "" "path to the Godot binary." msgstr "" -#: ../../docs/about/faq.rst:233 +#: ../../docs/about/faq.rst:235 msgid "" "Save `this .desktop file `__ to ``$HOME/." @@ -857,18 +869,18 @@ msgid "" "the shortcut available for all users." msgstr "" -#: ../../docs/about/faq.rst:239 +#: ../../docs/about/faq.rst:241 msgid "Is the Godot editor a portable application?" msgstr "" -#: ../../docs/about/faq.rst:241 +#: ../../docs/about/faq.rst:243 msgid "" "In its default configuration, Godot is *semi-portable*. Its executable can " "run from any location (including non-writable locations) and never requires " "administrator privileges." msgstr "" -#: ../../docs/about/faq.rst:245 +#: ../../docs/about/faq.rst:247 msgid "" "However, configuration files will be written to the user-wide configuration " "or data directory. This is usually a good approach, but this means " @@ -877,17 +889,17 @@ msgid "" "information." msgstr "" -#: ../../docs/about/faq.rst:250 +#: ../../docs/about/faq.rst:252 msgid "" "If *true* portable operation is desired (e.g. for use on an USB stick), " "follow the steps in :ref:`doc_data_paths_self_contained_mode`." msgstr "" -#: ../../docs/about/faq.rst:254 +#: ../../docs/about/faq.rst:256 msgid "Why does Godot use Vulkan or OpenGL instead of Direct3D?" msgstr "" -#: ../../docs/about/faq.rst:256 +#: ../../docs/about/faq.rst:258 msgid "" "Godot aims for cross-platform compatibility and open standards first and " "foremost. OpenGL and Vulkan are the technologies that are both open and " @@ -896,7 +908,7 @@ msgid "" "macOS, and more." msgstr "" -#: ../../docs/about/faq.rst:262 +#: ../../docs/about/faq.rst:264 msgid "" "Since Godot only has a few people working on its renderer, we would prefer " "having fewer rendering backends to maintain. On top of that, using a single " @@ -904,29 +916,29 @@ msgid "" "specific issues." msgstr "" -#: ../../docs/about/faq.rst:267 +#: ../../docs/about/faq.rst:269 msgid "" "In the long term, we may develop a Direct3D 12 renderer for Godot (mainly " "for the Xbox's purposes), but Vulkan and OpenGL will remain the default " "rendering backends on all platforms, including Windows." msgstr "" -#: ../../docs/about/faq.rst:272 +#: ../../docs/about/faq.rst:274 msgid "Why does Godot aim to keep its core feature set small?" msgstr "" -#: ../../docs/about/faq.rst:274 +#: ../../docs/about/faq.rst:276 msgid "" "Godot intentionally does not include features that can be implemented by add-" "ons unless they are used very often. One example of this would be advanced " "artificial intelligence functionality." msgstr "" -#: ../../docs/about/faq.rst:278 +#: ../../docs/about/faq.rst:280 msgid "There are several reasons for this:" msgstr "" -#: ../../docs/about/faq.rst:280 +#: ../../docs/about/faq.rst:282 msgid "" "**Code maintenance and surface for bugs.** Every time we accept new code in " "the Godot repository, existing contributors often take the reponsibility of " @@ -937,7 +949,7 @@ msgid "" "checked for regressions keeps increasing over time." msgstr "" -#: ../../docs/about/faq.rst:288 +#: ../../docs/about/faq.rst:290 msgid "" "**Ease of contribution.** By keeping the codebase small and tidy, it can " "remain fast and easy to compile from source. This makes it easier for new " @@ -945,7 +957,7 @@ msgid "" "high-end hardware." msgstr "" -#: ../../docs/about/faq.rst:293 +#: ../../docs/about/faq.rst:295 msgid "" "**Keeping the binary size small for the editor.** Not everyone has a fast " "Internet connection. Ensuring that everyone can download the Godot editor, " @@ -953,7 +965,7 @@ msgid "" "developers in all countries." msgstr "" -#: ../../docs/about/faq.rst:298 +#: ../../docs/about/faq.rst:300 msgid "" "**Keeping the binary size small for export templates.** This directly " "impacts the size of projects exported with Godot. On mobile and web " @@ -963,25 +975,25 @@ msgid "" "usage caps are often in effect in those countries." msgstr "" -#: ../../docs/about/faq.rst:305 +#: ../../docs/about/faq.rst:307 msgid "" "For all the reasons above, we have to be selective of what we can accept as " "core functionality in Godot. This is why we are aiming to move some core " "functionality to officially supported add-ons in future versions of Godot. " -"In terms of binary size, this also has the advance of making you pay only " +"In terms of binary size, this also has the advantage of making you pay only " "for what you actually use in your project. (In the meantime, you can :ref:" "`compile custom export templates with unused features disabled " "` to optimize the distribution size of your " "project.)" msgstr "" -#: ../../docs/about/faq.rst:314 +#: ../../docs/about/faq.rst:316 msgid "" "How should assets be created to handle multiple resolutions and aspect " "ratios?" msgstr "" -#: ../../docs/about/faq.rst:316 +#: ../../docs/about/faq.rst:318 msgid "" "This question pops up often and it's probably thanks to the misunderstanding " "created by Apple when they originally doubled the resolution of their " @@ -992,7 +1004,7 @@ msgid "" "created, with a very wide range of sizes and DPIs." msgstr "" -#: ../../docs/about/faq.rst:324 +#: ../../docs/about/faq.rst:326 msgid "" "The most common and proper way to achieve this is to, instead, use a single " "base resolution for the game and only handle different screen aspect ratios. " @@ -1000,7 +1012,7 @@ msgid "" "YFov." msgstr "" -#: ../../docs/about/faq.rst:328 +#: ../../docs/about/faq.rst:330 msgid "" "Choose a single base resolution for your game. Even if there are devices " "that go up to 2K and devices that go down to 400p, regular hardware scaling " @@ -1010,14 +1022,14 @@ msgid "" "will take and the longer the time it will take for loading." msgstr "" -#: ../../docs/about/faq.rst:336 +#: ../../docs/about/faq.rst:338 msgid "" "Use the stretch options in Godot; 2D stretching while keeping aspect ratios " "works best. Check the :ref:`doc_multiple_resolutions` tutorial on how to " "achieve this." msgstr "" -#: ../../docs/about/faq.rst:340 +#: ../../docs/about/faq.rst:342 msgid "" "Determine a minimum resolution and then decide if you want your game to " "stretch vertically or horizontally for different aspect ratios, or if there " @@ -1025,18 +1037,18 @@ msgid "" "explained in :ref:`doc_multiple_resolutions`." msgstr "" -#: ../../docs/about/faq.rst:345 +#: ../../docs/about/faq.rst:347 msgid "" "For user interfaces, use the :ref:`anchoring ` to " "determine where controls should stay and move. If UIs are more complex, " "consider learning about Containers." msgstr "" -#: ../../docs/about/faq.rst:349 +#: ../../docs/about/faq.rst:351 msgid "And that's it! Your game should work in multiple resolutions." msgstr "" -#: ../../docs/about/faq.rst:351 +#: ../../docs/about/faq.rst:353 msgid "" "If there is a desire to make your game also work on ancient devices with " "tiny screens (fewer than 300 pixels in width), you can use the export option " @@ -1044,32 +1056,32 @@ msgid "" "the App Store or Google Play." msgstr "" -#: ../../docs/about/faq.rst:357 +#: ../../docs/about/faq.rst:359 msgid "How can I extend Godot?" msgstr "" -#: ../../docs/about/faq.rst:359 +#: ../../docs/about/faq.rst:361 msgid "" "For extending Godot, like creating Godot Editor plugins or adding support " "for additional languages, take a look at :ref:`EditorPlugins " "` and tool scripts." msgstr "" -#: ../../docs/about/faq.rst:363 +#: ../../docs/about/faq.rst:365 msgid "Also, see the official blog posts on these topics:" msgstr "" -#: ../../docs/about/faq.rst:365 +#: ../../docs/about/faq.rst:367 msgid "" "`A look at the GDNative architecture `_" msgstr "" -#: ../../docs/about/faq.rst:366 +#: ../../docs/about/faq.rst:368 msgid "`GDNative is here! `_" msgstr "" -#: ../../docs/about/faq.rst:368 +#: ../../docs/about/faq.rst:370 msgid "" "You can also take a look at the GDScript implementation, the Godot modules, " "as well as the `unofficial Python support `_. Find an issue that resonates with you, then " @@ -1106,11 +1118,11 @@ msgid "" "fork, modify, and submit a Pull Request (PR) with your changes." msgstr "" -#: ../../docs/about/faq.rst:390 +#: ../../docs/about/faq.rst:392 msgid "I have a great idea for Godot. How can I share it?" msgstr "" -#: ../../docs/about/faq.rst:392 +#: ../../docs/about/faq.rst:394 msgid "" "It might be tempting to want to bring ideas to Godot, like ones that result " "in massive core changes, some sort of mimicry of what another game engine " @@ -1123,47 +1135,47 @@ msgid "" "community members." msgstr "" -#: ../../docs/about/faq.rst:401 +#: ../../docs/about/faq.rst:403 msgid "" "Most developers in the Godot community will be more interested to learn " "about things like:" msgstr "" -#: ../../docs/about/faq.rst:404 +#: ../../docs/about/faq.rst:406 msgid "" "Your experience using the software and the problems you have (we care about " "this much more than ideas on how to improve it)." msgstr "" -#: ../../docs/about/faq.rst:406 +#: ../../docs/about/faq.rst:408 msgid "" "The features you would like to see implemented because you need them for " "your project." msgstr "" -#: ../../docs/about/faq.rst:408 +#: ../../docs/about/faq.rst:410 msgid "" "The concepts that were difficult to understand while learning the software." msgstr "" -#: ../../docs/about/faq.rst:409 +#: ../../docs/about/faq.rst:411 msgid "The parts of your workflow you would like to see optimized." msgstr "" -#: ../../docs/about/faq.rst:410 +#: ../../docs/about/faq.rst:412 msgid "" "Parts where you missed clear tutorials or where the documentation wasn't " "clear." msgstr "" -#: ../../docs/about/faq.rst:412 +#: ../../docs/about/faq.rst:414 msgid "" "Please don't feel like your ideas for Godot are unwelcome. Instead, try to " "reformulate them as a problem first, so developers and the community have a " "functional foundation to ground your ideas on." msgstr "" -#: ../../docs/about/faq.rst:416 +#: ../../docs/about/faq.rst:418 msgid "" "A good way to approach sharing your ideas and problems with the community is " "as a set of user stories. Explain what you are trying to do, what behavior " @@ -1172,48 +1184,48 @@ msgid "" "improving developer experiences as a whole." msgstr "" -#: ../../docs/about/faq.rst:422 +#: ../../docs/about/faq.rst:424 msgid "" "Bonus points for bringing screenshots, concrete numbers, test cases, or " "example projects (if applicable)." msgstr "" -#: ../../docs/about/faq.rst:428 +#: ../../docs/about/faq.rst:430 msgid "Is it possible to use Godot to create non-game applications?" msgstr "" -#: ../../docs/about/faq.rst:430 +#: ../../docs/about/faq.rst:432 msgid "" "Yes! Godot features an extensive built-in UI system, and its small " "distribution size can make it a suitable alternative to frameworks like " "Electron or Qt." msgstr "" -#: ../../docs/about/faq.rst:433 +#: ../../docs/about/faq.rst:435 msgid "" "When creating a non-game application, make sure to enable :ref:`low-" "processor mode ` in the Project Settings to decrease CPU and GPU usage." msgstr "" -#: ../../docs/about/faq.rst:437 +#: ../../docs/about/faq.rst:439 msgid "" "That said, we wouldn't recommend using Godot to create a *mobile* " "application since low-processor mode isn't supported on mobile platforms yet." msgstr "" -#: ../../docs/about/faq.rst:440 +#: ../../docs/about/faq.rst:442 msgid "" "Check out `Material Maker `__ " "and `Pixelorama `__ for " "examples of open source applications made with Godot." msgstr "" -#: ../../docs/about/faq.rst:447 +#: ../../docs/about/faq.rst:449 msgid "Is it possible to use Godot as a library?" msgstr "" -#: ../../docs/about/faq.rst:449 +#: ../../docs/about/faq.rst:451 msgid "" "Godot is meant to be used with its editor. We recommend you give it a try, " "as it will most likely save you time in the long term. There are no plans to " @@ -1221,7 +1233,7 @@ msgid "" "convoluted and difficult to use for casual users." msgstr "" -#: ../../docs/about/faq.rst:454 +#: ../../docs/about/faq.rst:456 msgid "" "If you want to use a rendering library, look into using an established " "rendering engine instead. Keep in mind rendering engines usually have " @@ -1229,11 +1241,11 @@ msgid "" "find answers to your questions." msgstr "" -#: ../../docs/about/faq.rst:460 +#: ../../docs/about/faq.rst:462 msgid "What user interface toolkit does Godot use?" msgstr "" -#: ../../docs/about/faq.rst:462 +#: ../../docs/about/faq.rst:464 msgid "" "Godot does not use a standard :abbr:`GUI (Graphical User Interface)` toolkit " "like GTK, Qt or wxWidgets. Instead, Godot uses its own user interface " @@ -1243,7 +1255,7 @@ msgid "" "language supported by Godot." msgstr "" -#: ../../docs/about/faq.rst:469 +#: ../../docs/about/faq.rst:471 msgid "" "This custom toolkit makes it possible to benefit from hardware acceleration " "and have a consistent appearance across all platforms. On top of that, it " @@ -1252,31 +1264,31 @@ msgid "" "itself is one of the most complex users of Godot's UI system." msgstr "" -#: ../../docs/about/faq.rst:475 +#: ../../docs/about/faq.rst:477 msgid "" "This custom UI toolkit :ref:`can't be used as a library " "`, but you can still :ref:`use Godot to create " "non-game applications by using the editor `." msgstr "" -#: ../../docs/about/faq.rst:482 +#: ../../docs/about/faq.rst:484 msgid "Why does Godot not use STL (Standard Template Library)?" msgstr "" -#: ../../docs/about/faq.rst:484 +#: ../../docs/about/faq.rst:486 msgid "" "Like many other libraries (Qt as an example), Godot does not make use of " "STL. We believe STL is a great general purpose library, but we had special " "requirements for Godot." msgstr "" -#: ../../docs/about/faq.rst:488 +#: ../../docs/about/faq.rst:490 msgid "" "STL templates create very large symbols, which results in huge debug " "binaries. We use few templates with very short names instead." msgstr "" -#: ../../docs/about/faq.rst:489 +#: ../../docs/about/faq.rst:491 msgid "" "Most of our containers cater to special needs, like Vector, which uses copy " "on write and we use to pass data around, or the RID system, which requires " @@ -1284,29 +1296,29 @@ msgid "" "designed to integrate seamlessly with internal engine types." msgstr "" -#: ../../docs/about/faq.rst:490 +#: ../../docs/about/faq.rst:492 msgid "" "Our containers have memory tracking built-in, which helps better track " "memory usage." msgstr "" -#: ../../docs/about/faq.rst:491 +#: ../../docs/about/faq.rst:493 msgid "" "For large arrays, we use pooled memory, which can be mapped to either a " "preallocated buffer or virtual memory." msgstr "" -#: ../../docs/about/faq.rst:492 +#: ../../docs/about/faq.rst:494 msgid "" "We use our custom String type, as the one provided by STL is too basic and " "lacks proper internationalization support." msgstr "" -#: ../../docs/about/faq.rst:495 +#: ../../docs/about/faq.rst:497 msgid "Why does Godot not use exceptions?" msgstr "" -#: ../../docs/about/faq.rst:497 +#: ../../docs/about/faq.rst:499 msgid "" "We believe games should not crash, no matter what. If an unexpected " "situation happens, Godot will print an error (which can be traced even to " @@ -1314,35 +1326,35 @@ msgid "" "going." msgstr "" -#: ../../docs/about/faq.rst:502 +#: ../../docs/about/faq.rst:504 msgid "" "Additionally, exceptions significantly increase binary size for the " "executable." msgstr "" -#: ../../docs/about/faq.rst:506 +#: ../../docs/about/faq.rst:508 msgid "Why does Godot not enforce RTTI?" msgstr "" -#: ../../docs/about/faq.rst:508 +#: ../../docs/about/faq.rst:510 msgid "" "Godot provides its own type-casting system, which can optionally use RTTI " "internally. Disabling RTTI in Godot means considerably smaller binary sizes " "can be achieved, at a little performance cost." msgstr "" -#: ../../docs/about/faq.rst:513 +#: ../../docs/about/faq.rst:515 msgid "Why does Godot not force users to implement DoD (Data oriented Design)?" msgstr "" -#: ../../docs/about/faq.rst:515 +#: ../../docs/about/faq.rst:517 msgid "" "While Godot internally for a lot of the heavy performance tasks attempts to " "use cache coherency as well as possible, we believe most users don't really " "need to be forced to use DoD practices." msgstr "" -#: ../../docs/about/faq.rst:519 +#: ../../docs/about/faq.rst:521 msgid "" "DoD is mostly a cache coherency optimization that can only gain you " "significant performance improvements when dealing with dozens of thousands " @@ -1351,42 +1363,44 @@ msgid "" "help you, and you should consider a different approach to optimization." msgstr "" -#: ../../docs/about/faq.rst:526 +#: ../../docs/about/faq.rst:528 msgid "" "The vast majority of games do not need this and Godot provides handy helpers " "to do the job for most cases when you do." msgstr "" -#: ../../docs/about/faq.rst:529 +#: ../../docs/about/faq.rst:531 msgid "" "If a game that really needs to process such large amount of objects is " "needed, our recommendation is to use C++ and GDNative for the high " "performance parts and GDScript (or C#) for the rest of the game." msgstr "" -#: ../../docs/about/faq.rst:534 +#: ../../docs/about/faq.rst:536 msgid "How can I support Godot development or contribute?" msgstr "" -#: ../../docs/about/faq.rst:536 +#: ../../docs/about/faq.rst:538 msgid "See :ref:`doc_ways_to_contribute`." msgstr "" -#: ../../docs/about/faq.rst:539 +#: ../../docs/about/faq.rst:541 msgid "Who is working on Godot? How can I contact you?" msgstr "" -#: ../../docs/about/faq.rst:541 +#: ../../docs/about/faq.rst:543 msgid "" "See the corresponding page on the `Godot website `_." msgstr "" #: ../../docs/about/troubleshooting.rst:4 +#: ../../docs/tutorials/export/one-click_deploy.rst:63 #: ../../docs/tutorials/inputs/controllers_gamepads_joysticks.rst:180 #: ../../docs/tutorials/platform/android/android_plugin.rst:162 -#: ../../docs/development/compiling/compiling_for_windows.rst:245 +#: ../../docs/development/compiling/compiling_for_windows.rst:244 #: ../../docs/development/compiling/compiling_for_android.rst:204 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:73 #: ../../docs/development/editor/creating_icons.rst:92 msgid "Troubleshooting" msgstr "" @@ -1585,7 +1599,7 @@ msgstr "" #: ../../docs/about/list_of_features.rst:10 msgid "" "This page lists features supported by the current stable version of Godot " -"(3.4). `More features `__ are available in the latest development version " "(4.0)." msgstr "" @@ -1664,7 +1678,7 @@ msgstr "" #: ../../docs/about/list_of_features.rst:45 #: ../../docs/about/list_of_features.rst:93 -#: ../../docs/about/list_of_features.rst:385 +#: ../../docs/about/list_of_features.rst:395 msgid "**Features:**" msgstr "" @@ -1727,28 +1741,27 @@ msgid "Move the in-editor camera and see the result in the running project." msgstr "" #: ../../docs/about/list_of_features.rst:68 +msgid "Built-in offline class reference documentation." +msgstr "" + +#: ../../docs/about/list_of_features.rst:69 msgid "Use the editor in dozens of languages contributed by the community." msgstr "" -#: ../../docs/about/list_of_features.rst:70 +#: ../../docs/about/list_of_features.rst:71 msgid "**Plugins:**" msgstr "" -#: ../../docs/about/list_of_features.rst:72 +#: ../../docs/about/list_of_features.rst:73 msgid "" "Editor plugins can be downloaded from the :ref:`asset library " "` to extend editor functionality." msgstr "" -#: ../../docs/about/list_of_features.rst:74 -msgid "" -":ref:`Create your own plugins ` using GDScript to add new" -msgstr "" - #: ../../docs/about/list_of_features.rst:75 msgid "" -"Download projects from the asset library in the project manager and import " -"them directly. features or speed up your workflow." +":ref:`Create your own plugins ` using GDScript to add " +"new features or speed up your workflow." msgstr "" #: ../../docs/about/list_of_features.rst:77 @@ -1828,7 +1841,7 @@ msgstr "" #: ../../docs/about/list_of_features.rst:111 msgid "" "DynamicFont supports monochrome fonts as well as colored fonts (e.g. for " -"emoji). Supported formats are TTF, OTF and WOFF1." +"emoji). Supported formats are TTF, OTF, WOFF1 and WOFF2." msgstr "" #: ../../docs/about/list_of_features.rst:113 @@ -1846,7 +1859,7 @@ msgid "GPU-based particles with support for custom particle shaders." msgstr "" #: ../../docs/about/list_of_features.rst:117 -#: ../../docs/about/list_of_features.rst:245 +#: ../../docs/about/list_of_features.rst:244 msgid "CPU-based particles." msgstr "" @@ -2169,7 +2182,7 @@ msgstr "" msgid "**Particles:**" msgstr "" -#: ../../docs/about/list_of_features.rst:244 +#: ../../docs/about/list_of_features.rst:245 msgid "*GLES3:* GPU-based particles with support for custom particle shaders." msgstr "" @@ -2182,37 +2195,37 @@ msgid "Tonemapping (Linear, Reinhard, Filmic, ACES)." msgstr "" #: ../../docs/about/list_of_features.rst:250 -msgid "*GLES3:* Automatic exposure adjustments based on viewport brightness." -msgstr "" - -#: ../../docs/about/list_of_features.rst:251 -msgid "*GLES3:* Near and far depth of field." -msgstr "" - -#: ../../docs/about/list_of_features.rst:252 -msgid "*GLES3:* Screen-space ambient occlusion." -msgstr "" - -#: ../../docs/about/list_of_features.rst:253 -msgid "" -"*GLES3:* Optional debanding to avoid color banding (effective when HDR " -"rendering is enabled)." -msgstr "" - -#: ../../docs/about/list_of_features.rst:254 msgid "" "Glow/bloom with optional bicubic upscaling and several blend modes " "available: Screen, Soft Light, Add, Replace." msgstr "" -#: ../../docs/about/list_of_features.rst:256 +#: ../../docs/about/list_of_features.rst:252 msgid "Color correction using an one-dimensional ramp." msgstr "" -#: ../../docs/about/list_of_features.rst:257 +#: ../../docs/about/list_of_features.rst:253 msgid "Brightness, contrast and saturation adjustments." msgstr "" +#: ../../docs/about/list_of_features.rst:254 +msgid "*GLES3:* Automatic exposure adjustments based on viewport brightness." +msgstr "" + +#: ../../docs/about/list_of_features.rst:255 +msgid "*GLES3:* Near and far depth of field." +msgstr "" + +#: ../../docs/about/list_of_features.rst:256 +msgid "*GLES3:* Screen-space ambient occlusion (SSAO)." +msgstr "" + +#: ../../docs/about/list_of_features.rst:257 +msgid "" +"*GLES3:* Optional debanding to avoid color banding (effective when HDR " +"rendering is enabled)." +msgstr "" + #: ../../docs/about/list_of_features.rst:259 msgid "**Texture filtering:**" msgstr "" @@ -2270,8 +2283,9 @@ msgstr "" #: ../../docs/about/list_of_features.rst:281 msgid "" -"Real-time occluder spheres. Not as effective as rooms and portals (and " -"doesn't support gameplay notifications), but easier to set up." +"Real-time occluder shapes (sphere and polygon). Not as effective as rooms " +"and portals (and doesn't support gameplay notifications), but easier to set " +"up." msgstr "" #: ../../docs/about/list_of_features.rst:286 @@ -2496,351 +2510,375 @@ msgid "" "community." msgstr "" -#: ../../docs/about/list_of_features.rst:383 +#: ../../docs/about/list_of_features.rst:384 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:114 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:42 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:144 +#: ../../docs/tutorials/scripting/visual_script/index.rst:6 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:8 +msgid "" +"`Godot 4.0 will remove VisualScript from core entirely. `__ As a result, " +"creating new projects using visual scripting in Godot is not recommended. " +"Future Godot 4.x releases may have VisualScript reimplemented as an " +"extension." +msgstr "" + +#: ../../docs/about/list_of_features.rst:388 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:118 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:46 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:148 +#: ../../docs/tutorials/scripting/visual_script/index.rst:10 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:12 +msgid "" +"While Godot 3.x will keep VisualScript supported, we recommend :ref:`trying " +"out GDScript ` instead, especially if you " +"intend to migrate your project to Godot 4." +msgstr "" + +#: ../../docs/about/list_of_features.rst:393 #: ../../docs/about/docs_changelog.rst:28 #: ../../docs/tutorials/audio/index.rst:2 #: ../../docs/tutorials/export/exporting_for_web.rst:167 msgid "Audio" msgstr "" -#: ../../docs/about/list_of_features.rst:387 +#: ../../docs/about/list_of_features.rst:397 msgid "Mono, stereo, 5.1 and 7.1 output." msgstr "" -#: ../../docs/about/list_of_features.rst:388 +#: ../../docs/about/list_of_features.rst:398 msgid "Non-positional and positional playback in 2D and 3D." msgstr "" -#: ../../docs/about/list_of_features.rst:390 +#: ../../docs/about/list_of_features.rst:400 msgid "Optional Doppler effect in 2D and 3D." msgstr "" -#: ../../docs/about/list_of_features.rst:392 +#: ../../docs/about/list_of_features.rst:402 msgid "" "Support for re-routable :ref:`audio buses ` and effects " "with dozens of effects included." msgstr "" -#: ../../docs/about/list_of_features.rst:394 +#: ../../docs/about/list_of_features.rst:404 msgid "" "Listener2D and Listener3D nodes to listen from a position different than the " "camera." msgstr "" -#: ../../docs/about/list_of_features.rst:395 +#: ../../docs/about/list_of_features.rst:405 msgid "" "Audio input to record microphones with real-time access using the " "AudioEffectCapture class." msgstr "" -#: ../../docs/about/list_of_features.rst:396 +#: ../../docs/about/list_of_features.rst:406 msgid "MIDI input." msgstr "" -#: ../../docs/about/list_of_features.rst:398 +#: ../../docs/about/list_of_features.rst:408 msgid "No support for MIDI output yet." msgstr "" -#: ../../docs/about/list_of_features.rst:400 +#: ../../docs/about/list_of_features.rst:410 msgid "**APIs used:**" msgstr "" -#: ../../docs/about/list_of_features.rst:402 +#: ../../docs/about/list_of_features.rst:412 msgid "*Windows:* WASAPI." msgstr "" -#: ../../docs/about/list_of_features.rst:403 +#: ../../docs/about/list_of_features.rst:413 msgid "*macOS:* CoreAudio." msgstr "" -#: ../../docs/about/list_of_features.rst:404 +#: ../../docs/about/list_of_features.rst:414 msgid "*Linux:* PulseAudio or ALSA." msgstr "" -#: ../../docs/about/list_of_features.rst:407 +#: ../../docs/about/list_of_features.rst:417 msgid "Import" msgstr "" -#: ../../docs/about/list_of_features.rst:409 +#: ../../docs/about/list_of_features.rst:419 msgid "Support for :ref:`custom import plugins `." msgstr "" -#: ../../docs/about/list_of_features.rst:411 +#: ../../docs/about/list_of_features.rst:421 msgid "**Formats:**" msgstr "" -#: ../../docs/about/list_of_features.rst:413 +#: ../../docs/about/list_of_features.rst:423 msgid "*Images:* See :ref:`doc_import_images`." msgstr "" -#: ../../docs/about/list_of_features.rst:414 +#: ../../docs/about/list_of_features.rst:424 msgid "*Audio:*" msgstr "" -#: ../../docs/about/list_of_features.rst:416 +#: ../../docs/about/list_of_features.rst:426 msgid "WAV with optional IMA-ADPCM compression." msgstr "" -#: ../../docs/about/list_of_features.rst:417 +#: ../../docs/about/list_of_features.rst:427 msgid "Ogg Vorbis." msgstr "" -#: ../../docs/about/list_of_features.rst:418 +#: ../../docs/about/list_of_features.rst:428 msgid "MP3." msgstr "" -#: ../../docs/about/list_of_features.rst:420 +#: ../../docs/about/list_of_features.rst:430 msgid "*3D scenes:*" msgstr "" -#: ../../docs/about/list_of_features.rst:422 +#: ../../docs/about/list_of_features.rst:432 msgid "glTF 2.0 *(recommended)*." msgstr "" -#: ../../docs/about/list_of_features.rst:423 +#: ../../docs/about/list_of_features.rst:433 msgid "" "`ESCN `__ (direct " "export from Blender)." msgstr "" -#: ../../docs/about/list_of_features.rst:425 +#: ../../docs/about/list_of_features.rst:435 msgid "FBX (experimental, static meshes only)." msgstr "" -#: ../../docs/about/list_of_features.rst:426 +#: ../../docs/about/list_of_features.rst:436 msgid "Collada (.dae)." msgstr "" -#: ../../docs/about/list_of_features.rst:427 +#: ../../docs/about/list_of_features.rst:437 msgid "Wavefront OBJ (static scenes only, can be loaded directly as a mesh)." msgstr "" -#: ../../docs/about/list_of_features.rst:429 +#: ../../docs/about/list_of_features.rst:439 msgid "" "3D meshes use `Mikktspace `__ to generate " "tangents on import, which ensures consistency with other 3D applications " "such as Blender." msgstr "" -#: ../../docs/about/list_of_features.rst:433 +#: ../../docs/about/list_of_features.rst:443 #: ../../docs/tutorials/rendering/viewports.rst:38 #: ../../docs/tutorials/ui/custom_gui_controls.rst:112 msgid "Input" msgstr "" -#: ../../docs/about/list_of_features.rst:435 +#: ../../docs/about/list_of_features.rst:445 msgid "" "Input mapping system using hardcoded input events or remappable input " "actions." msgstr "" -#: ../../docs/about/list_of_features.rst:437 +#: ../../docs/about/list_of_features.rst:447 msgid "" "Axis values can be mapped to two different actions with a configurable " "deadzone." msgstr "" -#: ../../docs/about/list_of_features.rst:438 +#: ../../docs/about/list_of_features.rst:448 msgid "Use the same code to support both keyboards and gamepads." msgstr "" -#: ../../docs/about/list_of_features.rst:440 +#: ../../docs/about/list_of_features.rst:450 msgid "Keyboard input." msgstr "" -#: ../../docs/about/list_of_features.rst:442 +#: ../../docs/about/list_of_features.rst:452 msgid "" "Keys can be mapped in \"physical\" mode to be independent of the keyboard " "layout." msgstr "" -#: ../../docs/about/list_of_features.rst:444 +#: ../../docs/about/list_of_features.rst:454 msgid "Mouse input." msgstr "" -#: ../../docs/about/list_of_features.rst:446 +#: ../../docs/about/list_of_features.rst:456 msgid "" "The mouse cursor can be visible, hidden, captured or confined within the " "window." msgstr "" -#: ../../docs/about/list_of_features.rst:447 +#: ../../docs/about/list_of_features.rst:457 msgid "" "When captured, raw input will be used on Windows and Linux to sidestep the " "OS' mouse acceleration settings." msgstr "" -#: ../../docs/about/list_of_features.rst:450 +#: ../../docs/about/list_of_features.rst:460 msgid "Gamepad input (up to 8 simultaneous controllers)." msgstr "" -#: ../../docs/about/list_of_features.rst:451 +#: ../../docs/about/list_of_features.rst:461 msgid "Pen/tablet input with pressure support." msgstr "" -#: ../../docs/about/list_of_features.rst:452 +#: ../../docs/about/list_of_features.rst:462 msgid "" "Gamepad, keyboard and mouse input support are also available on Android." msgstr "" -#: ../../docs/about/list_of_features.rst:455 +#: ../../docs/about/list_of_features.rst:465 #: ../../docs/tutorials/navigation/index.rst:2 msgid "Navigation" msgstr "" -#: ../../docs/about/list_of_features.rst:457 +#: ../../docs/about/list_of_features.rst:467 msgid "A* algorithm in 2D and 3D." msgstr "" -#: ../../docs/about/list_of_features.rst:458 -msgid "Navigation meshes." +#: ../../docs/about/list_of_features.rst:468 +msgid "Navigation meshes with dynamic obstacle avoidance." msgstr "" -#: ../../docs/about/list_of_features.rst:460 -msgid "Support for dynamic obstacle avoidance planned in Godot 4.0." +#: ../../docs/about/list_of_features.rst:469 +msgid "" +"Generate navigation meshes from the editor or at run-time (including from an " +"exported project)." msgstr "" -#: ../../docs/about/list_of_features.rst:462 -msgid "Generate navigation meshes from the editor." -msgstr "" - -#: ../../docs/about/list_of_features.rst:465 +#: ../../docs/about/list_of_features.rst:472 #: ../../docs/about/docs_changelog.rst:60 #: ../../docs/tutorials/export/exporting_for_web.rst:179 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/list_of_features.rst:467 +#: ../../docs/about/list_of_features.rst:474 msgid "Low-level TCP networking using StreamPeer and TCP_Server." msgstr "" -#: ../../docs/about/list_of_features.rst:468 +#: ../../docs/about/list_of_features.rst:475 msgid "Low-level UDP networking using PacketPeer and UDPServer." msgstr "" -#: ../../docs/about/list_of_features.rst:469 +#: ../../docs/about/list_of_features.rst:476 msgid "Low-level HTTP requests using HTTPClient." msgstr "" -#: ../../docs/about/list_of_features.rst:470 +#: ../../docs/about/list_of_features.rst:477 msgid "High-level HTTP requests using HTTPRequest." msgstr "" -#: ../../docs/about/list_of_features.rst:472 +#: ../../docs/about/list_of_features.rst:479 msgid "Supports HTTPS out of the box using bundled certificates." msgstr "" -#: ../../docs/about/list_of_features.rst:474 +#: ../../docs/about/list_of_features.rst:481 msgid "High-level multiplayer API using UDP and ENet." msgstr "" -#: ../../docs/about/list_of_features.rst:476 +#: ../../docs/about/list_of_features.rst:483 msgid "Automatic replication using remote procedure calls (RPCs)." msgstr "" -#: ../../docs/about/list_of_features.rst:477 +#: ../../docs/about/list_of_features.rst:484 msgid "Supports unreliable, reliable and ordered transfers." msgstr "" -#: ../../docs/about/list_of_features.rst:479 +#: ../../docs/about/list_of_features.rst:486 msgid "WebSocket client and server, available on all platforms." msgstr "" -#: ../../docs/about/list_of_features.rst:480 +#: ../../docs/about/list_of_features.rst:487 msgid "WebRTC client and server, available on all platforms." msgstr "" -#: ../../docs/about/list_of_features.rst:481 +#: ../../docs/about/list_of_features.rst:488 msgid "" "Support for UPnP to sidestep the requirement to forward ports when hosting a " "server behind a NAT." msgstr "" -#: ../../docs/about/list_of_features.rst:485 +#: ../../docs/about/list_of_features.rst:492 #: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/i18n/index.rst:2 msgid "Internationalization" msgstr "" -#: ../../docs/about/list_of_features.rst:487 +#: ../../docs/about/list_of_features.rst:494 msgid "Full support for Unicode including emoji." msgstr "" -#: ../../docs/about/list_of_features.rst:488 +#: ../../docs/about/list_of_features.rst:495 msgid "" "Store localization strings using :ref:`CSV ` " "or :ref:`gettext `." msgstr "" -#: ../../docs/about/list_of_features.rst:490 +#: ../../docs/about/list_of_features.rst:497 msgid "" "Use localized strings in your project automatically in GUI elements or by " "using the ``tr()`` function." msgstr "" -#: ../../docs/about/list_of_features.rst:492 +#: ../../docs/about/list_of_features.rst:499 msgid "" "Support for right-to-left typesetting and text shaping planned in Godot 4.0." msgstr "" -#: ../../docs/about/list_of_features.rst:495 +#: ../../docs/about/list_of_features.rst:502 msgid "Windowing and OS integration" msgstr "" -#: ../../docs/about/list_of_features.rst:497 +#: ../../docs/about/list_of_features.rst:504 msgid "Move, resize, minimize, and maximize the window spawned by the project." msgstr "" -#: ../../docs/about/list_of_features.rst:498 +#: ../../docs/about/list_of_features.rst:505 msgid "Change the window title and icon." msgstr "" -#: ../../docs/about/list_of_features.rst:499 +#: ../../docs/about/list_of_features.rst:506 msgid "" "Request attention (will cause the title bar to blink on most platforms)." msgstr "" -#: ../../docs/about/list_of_features.rst:500 +#: ../../docs/about/list_of_features.rst:507 msgid "Fullscreen mode." msgstr "" -#: ../../docs/about/list_of_features.rst:502 +#: ../../docs/about/list_of_features.rst:509 msgid "" "Doesn't use exclusive fullscreen, so the screen resolution can't be changed " "this way. Use a Viewport with a different resolution instead." msgstr "" -#: ../../docs/about/list_of_features.rst:505 +#: ../../docs/about/list_of_features.rst:512 msgid "Borderless window (fullscreen or non-fullscreen)." msgstr "" -#: ../../docs/about/list_of_features.rst:506 +#: ../../docs/about/list_of_features.rst:513 msgid "Ability to keep the window always on top." msgstr "" -#: ../../docs/about/list_of_features.rst:507 +#: ../../docs/about/list_of_features.rst:514 msgid "Transparent window with per-pixel transparency." msgstr "" -#: ../../docs/about/list_of_features.rst:508 +#: ../../docs/about/list_of_features.rst:515 msgid "Global menu integration on macOS." msgstr "" -#: ../../docs/about/list_of_features.rst:509 +#: ../../docs/about/list_of_features.rst:516 msgid "Execute commands in a blocking or non-blocking manner." msgstr "" -#: ../../docs/about/list_of_features.rst:510 +#: ../../docs/about/list_of_features.rst:517 msgid "" "Open file paths and URLs using default or custom protocol handlers (if " "registered on the system)." msgstr "" -#: ../../docs/about/list_of_features.rst:511 +#: ../../docs/about/list_of_features.rst:518 msgid "Parse custom command line arguments." msgstr "" -#: ../../docs/about/list_of_features.rst:512 +#: ../../docs/about/list_of_features.rst:519 msgid "" ":ref:`Headless/server binaries ` can be " "downloaded for Linux and :ref:`compiled for macOS `. " @@ -2848,333 +2886,333 @@ msgid "" "`command line argument `." msgstr "" -#: ../../docs/about/list_of_features.rst:518 +#: ../../docs/about/list_of_features.rst:525 msgid "Mobile" msgstr "" -#: ../../docs/about/list_of_features.rst:520 +#: ../../docs/about/list_of_features.rst:527 msgid "In-app purchases on Android and iOS." msgstr "" -#: ../../docs/about/list_of_features.rst:521 +#: ../../docs/about/list_of_features.rst:528 msgid "Support for advertisements using third-party modules." msgstr "" -#: ../../docs/about/list_of_features.rst:522 +#: ../../docs/about/list_of_features.rst:529 msgid "Support for subview embedding on Android." msgstr "" -#: ../../docs/about/list_of_features.rst:525 +#: ../../docs/about/list_of_features.rst:532 msgid "XR support (AR and VR)" msgstr "" -#: ../../docs/about/list_of_features.rst:527 +#: ../../docs/about/list_of_features.rst:534 msgid "Support for ARKit on iOS out of the box." msgstr "" -#: ../../docs/about/list_of_features.rst:528 +#: ../../docs/about/list_of_features.rst:535 msgid "Support for the OpenXR APIs." msgstr "" -#: ../../docs/about/list_of_features.rst:530 +#: ../../docs/about/list_of_features.rst:537 msgid "" "Includes support for popular headsets like the Meta Quest and the Valve " "Index." msgstr "" -#: ../../docs/about/list_of_features.rst:532 +#: ../../docs/about/list_of_features.rst:539 msgid "Support for the OpenVR APIs." msgstr "" -#: ../../docs/about/list_of_features.rst:535 +#: ../../docs/about/list_of_features.rst:542 msgid "GUI system" msgstr "" -#: ../../docs/about/list_of_features.rst:537 +#: ../../docs/about/list_of_features.rst:544 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:540 +#: ../../docs/about/list_of_features.rst:547 msgid "**Nodes:**" msgstr "" -#: ../../docs/about/list_of_features.rst:542 +#: ../../docs/about/list_of_features.rst:549 msgid "Buttons." msgstr "" -#: ../../docs/about/list_of_features.rst:543 +#: ../../docs/about/list_of_features.rst:550 msgid "Checkboxes, check buttons, radio buttons." msgstr "" -#: ../../docs/about/list_of_features.rst:544 +#: ../../docs/about/list_of_features.rst:551 msgid "Text entry using LineEdit (single line) and TextEdit (multiple lines)." msgstr "" -#: ../../docs/about/list_of_features.rst:545 +#: ../../docs/about/list_of_features.rst:552 msgid "Dropdown menus using PopupMenu and OptionButton." msgstr "" -#: ../../docs/about/list_of_features.rst:546 +#: ../../docs/about/list_of_features.rst:553 msgid "Scrollbars." msgstr "" -#: ../../docs/about/list_of_features.rst:547 +#: ../../docs/about/list_of_features.rst:554 msgid "Labels." msgstr "" -#: ../../docs/about/list_of_features.rst:548 +#: ../../docs/about/list_of_features.rst:555 msgid "" "RichTextLabel for :ref:`text formatted using BBCode " "`." msgstr "" -#: ../../docs/about/list_of_features.rst:549 +#: ../../docs/about/list_of_features.rst:556 msgid "Trees (can also be used to represent tables)." msgstr "" -#: ../../docs/about/list_of_features.rst:550 +#: ../../docs/about/list_of_features.rst:557 msgid "Color picker with RGB and HSV modes." msgstr "" -#: ../../docs/about/list_of_features.rst:551 +#: ../../docs/about/list_of_features.rst:558 msgid "" "Containers (horizontal, vertical, grid, flow, center, margin, aspect ratio, " "draggable splitter, ...)." msgstr "" -#: ../../docs/about/list_of_features.rst:552 +#: ../../docs/about/list_of_features.rst:559 msgid "Controls can be rotated and scaled." msgstr "" -#: ../../docs/about/list_of_features.rst:554 +#: ../../docs/about/list_of_features.rst:561 msgid "**Sizing:**" msgstr "" -#: ../../docs/about/list_of_features.rst:556 +#: ../../docs/about/list_of_features.rst:563 msgid "Anchors to keep GUI elements in a specific corner, edge or centered." msgstr "" -#: ../../docs/about/list_of_features.rst:557 +#: ../../docs/about/list_of_features.rst:564 msgid "Containers to place GUI elements automatically following certain rules." msgstr "" -#: ../../docs/about/list_of_features.rst:559 +#: ../../docs/about/list_of_features.rst:566 msgid ":ref:`Stack ` layouts." msgstr "" -#: ../../docs/about/list_of_features.rst:560 +#: ../../docs/about/list_of_features.rst:567 msgid ":ref:`Grid ` layouts." msgstr "" -#: ../../docs/about/list_of_features.rst:561 +#: ../../docs/about/list_of_features.rst:568 msgid "" ":ref:`Margin ` and :ref:`centered " "` layouts." msgstr "" -#: ../../docs/about/list_of_features.rst:563 +#: ../../docs/about/list_of_features.rst:570 msgid ":ref:`Draggable splitter ` layouts." msgstr "" -#: ../../docs/about/list_of_features.rst:565 +#: ../../docs/about/list_of_features.rst:572 msgid "" "Scale to multiple resolutions using the ``2d`` or ``viewport`` stretch modes." msgstr "" -#: ../../docs/about/list_of_features.rst:566 +#: ../../docs/about/list_of_features.rst:573 msgid "" "Support any aspect ratio using anchors and the ``expand`` stretch aspect." msgstr "" -#: ../../docs/about/list_of_features.rst:568 +#: ../../docs/about/list_of_features.rst:575 msgid "**Theming:**" msgstr "" -#: ../../docs/about/list_of_features.rst:570 +#: ../../docs/about/list_of_features.rst:577 msgid "Built-in theme editor." msgstr "" -#: ../../docs/about/list_of_features.rst:572 +#: ../../docs/about/list_of_features.rst:579 msgid "Generate a theme based on the current editor theme settings." msgstr "" -#: ../../docs/about/list_of_features.rst:574 +#: ../../docs/about/list_of_features.rst:581 msgid "Procedural vector-based theming using :ref:`class_StyleBoxFlat`." msgstr "" -#: ../../docs/about/list_of_features.rst:576 +#: ../../docs/about/list_of_features.rst:583 msgid "" "Supports rounded/beveled corners, drop shadows, per-border widths and " "antialiasing." msgstr "" -#: ../../docs/about/list_of_features.rst:578 +#: ../../docs/about/list_of_features.rst:585 msgid "Texture-based theming using :ref:`class_StyleBoxTexture`." msgstr "" -#: ../../docs/about/list_of_features.rst:580 +#: ../../docs/about/list_of_features.rst:587 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:584 +#: ../../docs/about/list_of_features.rst:591 #: ../../docs/about/docs_changelog.rst:153 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/tutorials/assets_pipeline/escn_exporter/animation.rst:2 -#: ../../docs/development/file_formats/tscn.rst:381 +#: ../../docs/development/file_formats/tscn.rst:382 msgid "Animation" msgstr "" -#: ../../docs/about/list_of_features.rst:586 +#: ../../docs/about/list_of_features.rst:593 msgid "Direct kinematics and inverse kinematics." msgstr "" -#: ../../docs/about/list_of_features.rst:587 +#: ../../docs/about/list_of_features.rst:594 msgid "" ":ref:`Tween ` node to easily perform procedural animations by " "code." msgstr "" -#: ../../docs/about/list_of_features.rst:588 +#: ../../docs/about/list_of_features.rst:595 msgid "Support for animating any property with customizable interpolation." msgstr "" -#: ../../docs/about/list_of_features.rst:589 +#: ../../docs/about/list_of_features.rst:596 msgid "Support for calling methods in animation tracks." msgstr "" -#: ../../docs/about/list_of_features.rst:590 +#: ../../docs/about/list_of_features.rst:597 msgid "Support for playing sounds in animation tracks." msgstr "" -#: ../../docs/about/list_of_features.rst:591 +#: ../../docs/about/list_of_features.rst:598 msgid "Support for Bézier curves in animation." msgstr "" -#: ../../docs/about/list_of_features.rst:594 +#: ../../docs/about/list_of_features.rst:601 msgid "File formats" msgstr "" -#: ../../docs/about/list_of_features.rst:596 +#: ../../docs/about/list_of_features.rst:603 msgid "" "Scenes and resources can be saved in :ref:`text-based " "` or binary formats." msgstr "" -#: ../../docs/about/list_of_features.rst:598 +#: ../../docs/about/list_of_features.rst:605 msgid "" "Text-based formats are human-readable and more friendly to version control." msgstr "" -#: ../../docs/about/list_of_features.rst:599 +#: ../../docs/about/list_of_features.rst:606 msgid "Binary formats are faster to save/load for large scenes/resources." msgstr "" -#: ../../docs/about/list_of_features.rst:601 +#: ../../docs/about/list_of_features.rst:608 msgid "Read and write text or binary files using :ref:`class_File`." msgstr "" -#: ../../docs/about/list_of_features.rst:603 +#: ../../docs/about/list_of_features.rst:610 msgid "Can optionally be compressed or encrypted." msgstr "" -#: ../../docs/about/list_of_features.rst:605 +#: ../../docs/about/list_of_features.rst:612 msgid "Read and write :ref:`class_JSON` files." msgstr "" -#: ../../docs/about/list_of_features.rst:606 +#: ../../docs/about/list_of_features.rst:613 msgid "" "Read and write INI-style configuration files using :ref:`class_ConfigFile`." msgstr "" -#: ../../docs/about/list_of_features.rst:608 +#: ../../docs/about/list_of_features.rst:615 msgid "Can (de)serialize any Godot datatype, including Vector2/3, Color, ..." msgstr "" -#: ../../docs/about/list_of_features.rst:610 +#: ../../docs/about/list_of_features.rst:617 msgid "Read XML files using :ref:`class_XMLParser`." msgstr "" -#: ../../docs/about/list_of_features.rst:611 +#: ../../docs/about/list_of_features.rst:618 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:613 +#: ../../docs/about/list_of_features.rst:620 msgid "" ":ref:`Export additional PCK files` that can be read by " "the engine to support mods and DLCs." msgstr "" -#: ../../docs/about/list_of_features.rst:617 +#: ../../docs/about/list_of_features.rst:624 #: ../../docs/about/docs_changelog.rst:205 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/list_of_features.rst:619 +#: ../../docs/about/list_of_features.rst:626 msgid "" ":ref:`Low-level access to servers ` which allows " "bypassing the scene tree's overhead when needed." msgstr "" -#: ../../docs/about/list_of_features.rst:621 +#: ../../docs/about/list_of_features.rst:628 msgid "" ":ref:`Command line interface ` for automation." msgstr "" -#: ../../docs/about/list_of_features.rst:623 +#: ../../docs/about/list_of_features.rst:630 msgid "Export and deploy projects using continuous integration platforms." msgstr "" -#: ../../docs/about/list_of_features.rst:624 +#: ../../docs/about/list_of_features.rst:631 msgid "" "`Shell completion scripts `__ are available for Bash, zsh and fish." msgstr "" -#: ../../docs/about/list_of_features.rst:627 +#: ../../docs/about/list_of_features.rst:634 msgid "" "Support for :ref:`C++ modules ` statically linked " "into the engine binary." msgstr "" -#: ../../docs/about/list_of_features.rst:629 +#: ../../docs/about/list_of_features.rst:636 msgid "Engine and editor written in C++03." msgstr "" -#: ../../docs/about/list_of_features.rst:631 +#: ../../docs/about/list_of_features.rst:638 msgid "" "Can be :ref:`compiled ` using GCC, " "Clang and MSVC. MinGW is also supported." msgstr "" -#: ../../docs/about/list_of_features.rst:633 +#: ../../docs/about/list_of_features.rst:640 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:636 +#: ../../docs/about/list_of_features.rst:643 msgid "Godot 4.0 will be written in C++17." msgstr "" -#: ../../docs/about/list_of_features.rst:638 +#: ../../docs/about/list_of_features.rst:645 msgid "Licensed under the permissive MIT license." msgstr "" -#: ../../docs/about/list_of_features.rst:640 +#: ../../docs/about/list_of_features.rst:647 msgid "" "Open developement process with :ref:`contributions welcome " "`." msgstr "" -#: ../../docs/about/list_of_features.rst:644 +#: ../../docs/about/list_of_features.rst:651 msgid "" "The `Godot proposals repository `__ lists features that have been requested by the community and " @@ -3387,7 +3425,7 @@ msgstr "" #: ../../docs/about/docs_changelog.rst:107 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:18 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:25 msgid "Step by step" msgstr "" @@ -3756,23 +3794,20 @@ msgid "Godot 4.0" msgstr "" #: ../../docs/about/release_policy.rst:91 -msgid "~2022 (see below)" +#: ../../docs/about/release_policy.rst:93 +msgid "Q4 2022" msgstr "" #: ../../docs/about/release_policy.rst:91 -msgid "|unstable| *Current focus of development (unstable).*" +msgid "|unstable| *Alpha.* Current focus of development (unstable)." msgstr "" -#: ../../docs/about/release_policy.rst:120 +#: ../../docs/about/release_policy.rst:122 msgid "unstable" msgstr "" #: ../../docs/about/release_policy.rst:93 -msgid "Godot 3.5" -msgstr "" - -#: ../../docs/about/release_policy.rst:93 -msgid "Q2 2022" +msgid "Godot 3.6" msgstr "" #: ../../docs/about/release_policy.rst:93 @@ -3781,16 +3816,16 @@ msgid "" "development." msgstr "" -#: ../../docs/about/release_policy.rst:117 +#: ../../docs/about/release_policy.rst:119 msgid "supported" msgstr "" #: ../../docs/about/release_policy.rst:96 -msgid "Godot 3.4" +msgid "Godot 3.5" msgstr "" #: ../../docs/about/release_policy.rst:96 -msgid "November 2021" +msgid "August 2022" msgstr "" #: ../../docs/about/release_policy.rst:96 @@ -3800,150 +3835,157 @@ msgid "" msgstr "" #: ../../docs/about/release_policy.rst:99 -msgid "Godot 3.3" +msgid "Godot 3.4" msgstr "" #: ../../docs/about/release_policy.rst:99 -msgid "April 2021" +msgid "November 2021" msgstr "" #: ../../docs/about/release_policy.rst:99 msgid "|partial| Receives fixes for security and platform support issues only." msgstr "" -#: ../../docs/about/release_policy.rst:118 +#: ../../docs/about/release_policy.rst:120 msgid "partial" msgstr "" #: ../../docs/about/release_policy.rst:101 -msgid "Godot 3.2" +msgid "Godot 3.3" msgstr "" #: ../../docs/about/release_policy.rst:101 -msgid "January 2020" +msgid "April 2021" msgstr "" #: ../../docs/about/release_policy.rst:101 msgid "" -"|eol| No longer supported as fully superseded by the compatible 3.3 release " -"(last update: 3.2.3)." +"|eol| No longer supported as fully superseded by the compatible 3.4 release " +"(last update: 3.3.4)." msgstr "" -#: ../../docs/about/release_policy.rst:119 +#: ../../docs/about/release_policy.rst:121 msgid "eol" msgstr "" #: ../../docs/about/release_policy.rst:104 +msgid "Godot 3.2" +msgstr "" + +#: ../../docs/about/release_policy.rst:104 +msgid "January 2020" +msgstr "" + +#: ../../docs/about/release_policy.rst:104 +msgid "|eol| No longer supported (last update: 3.2.3)." +msgstr "" + +#: ../../docs/about/release_policy.rst:106 msgid "Godot 3.1" msgstr "" -#: ../../docs/about/release_policy.rst:104 +#: ../../docs/about/release_policy.rst:106 msgid "March 2019" msgstr "" -#: ../../docs/about/release_policy.rst:104 +#: ../../docs/about/release_policy.rst:106 msgid "|eol| No longer supported (last update: 3.1.2)." msgstr "" -#: ../../docs/about/release_policy.rst:106 +#: ../../docs/about/release_policy.rst:108 msgid "Godot 3.0" msgstr "" -#: ../../docs/about/release_policy.rst:106 +#: ../../docs/about/release_policy.rst:108 msgid "January 2018" msgstr "" -#: ../../docs/about/release_policy.rst:106 +#: ../../docs/about/release_policy.rst:108 msgid "|eol| No longer supported (last update: 3.0.6)." msgstr "" -#: ../../docs/about/release_policy.rst:108 +#: ../../docs/about/release_policy.rst:110 msgid "Godot 2.1" msgstr "" -#: ../../docs/about/release_policy.rst:108 +#: ../../docs/about/release_policy.rst:110 msgid "July 2016" msgstr "" -#: ../../docs/about/release_policy.rst:108 +#: ../../docs/about/release_policy.rst:110 msgid "|eol| No longer supported (last update: 2.1.6)." msgstr "" -#: ../../docs/about/release_policy.rst:110 +#: ../../docs/about/release_policy.rst:112 msgid "Godot 2.0" msgstr "" -#: ../../docs/about/release_policy.rst:110 +#: ../../docs/about/release_policy.rst:112 msgid "February 2016" msgstr "" -#: ../../docs/about/release_policy.rst:110 +#: ../../docs/about/release_policy.rst:112 msgid "|eol| No longer supported (last update: 2.0.4.1)." msgstr "" -#: ../../docs/about/release_policy.rst:112 +#: ../../docs/about/release_policy.rst:114 msgid "Godot 1.1" msgstr "" -#: ../../docs/about/release_policy.rst:112 +#: ../../docs/about/release_policy.rst:114 msgid "May 2015" msgstr "" -#: ../../docs/about/release_policy.rst:112 #: ../../docs/about/release_policy.rst:114 +#: ../../docs/about/release_policy.rst:116 msgid "|eol| No longer supported." msgstr "" -#: ../../docs/about/release_policy.rst:114 +#: ../../docs/about/release_policy.rst:116 msgid "Godot 1.0" msgstr "" -#: ../../docs/about/release_policy.rst:114 +#: ../../docs/about/release_policy.rst:116 msgid "December 2014" msgstr "" -#: ../../docs/about/release_policy.rst:122 +#: ../../docs/about/release_policy.rst:124 msgid "" "**Legend:** |supported| Full support – |partial| Partial support – |eol| No " "support (end of life) – |unstable| Development version" msgstr "" -#: ../../docs/about/release_policy.rst:128 +#: ../../docs/about/release_policy.rst:130 msgid "" "Pre-release Godot versions aren't intended to be used in production and are " "provided for testing purposes only." msgstr "" -#: ../../docs/about/release_policy.rst:134 +#: ../../docs/about/release_policy.rst:136 msgid "When is the next release out?" msgstr "" -#: ../../docs/about/release_policy.rst:136 +#: ../../docs/about/release_policy.rst:138 msgid "" -"While Godot contributors aren't working under any deadlines, we have " -"historically had one major or minor release per year, with several " -"maintenance updates between each." +"While Godot contributors aren't working under any deadlines, we strive to " +"publish minor releases relatively frequently, with an average of two 3.x " +"minor releases per year since Godot 3.3." msgstr "" -#: ../../docs/about/release_policy.rst:140 +#: ../../docs/about/release_policy.rst:142 msgid "" -"Starting with Godot 3.3, we aim to accelerate our development cycles for " -"minor releases, so you can expect a new minor release every 3 to 6 months." +"Maintenance (patch) releases are released as needed with potentially very " +"short development cycles, to provide users of the current stable branch with " +"the latest bug fixes for their production needs." msgstr "" -#: ../../docs/about/release_policy.rst:143 +#: ../../docs/about/release_policy.rst:146 msgid "" -"Maintenance (patch) releases will be released as needed with potentially " -"very short development cycles, to provide users of the current stable branch " -"with the latest bug fixes for their production needs." -msgstr "" - -#: ../../docs/about/release_policy.rst:147 -msgid "" -"As for the upcoming Godot 4.0, we can only say that we aim for a **2022** " -"release, but any closer estimate is likely to be hard to uphold. Alpha " -"builds will be published as soon as the main features for Godot 4.0 are " -"finalized." +"As for the upcoming Godot 4.0, as of August 2022, we are aiming for a *beta* " +"release in Q3 2022, and possibly a stable release by Q4 2022 (but experience " +"has shown time and time again that such estimates tend to be overly " +"optimistic). `Follow the Godot blog `__ for " +"the latest updates." msgstr "" #: ../../docs/about/complying_with_licenses.rst:4 @@ -4316,36 +4358,28 @@ msgid "" msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:47 -msgid "You can find many more examples in the official showcase videos:" -msgstr "" - -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:49 -msgid "`April 2020 desktop and console showcase`_" +msgid "You can find many more examples in the `official showcase videos`_." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:50 -msgid "`April 2020 mobile showcase`_" -msgstr "" - -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:53 msgid "How does it work and look?" msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:55 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:52 msgid "" "Godot comes with a fully-fledged game editor with integrated tools to answer " "the most common needs. It includes a code editor, an animation editor, a " "tilemap editor, a shader editor, a debugger, a profiler, and more." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:61 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:58 msgid "" "The team strives to offer a feature-rich game editor with a consistent user " "experience. While there is always room for improvement, the user interface " "keeps getting refined." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:65 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:62 msgid "" "Of course, if you prefer, you can work with external programs. We officially " "support importing 3D scenes designed in Blender_ and maintain plugins to " @@ -4353,16 +4387,16 @@ msgid "" "Studio for C# on Windows." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:73 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:70 #: ../../docs/tutorials/scripting/index.rst:12 msgid "Programming languages" msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:75 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:72 msgid "Let's talk about the available programming languages." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:77 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:74 msgid "" "You can code your games using :ref:`GDScript `, a Godot-specific and tightly integrated language with a " @@ -4370,13 +4404,13 @@ msgid "" "in the games industry. These are the two main scripting languages we support." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:82 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:79 msgid "" "Godot also supports a node-based visual programming language named :ref:" "`VisualScript `." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:85 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:82 msgid "" "With the :ref:`GDNative ` technology, you can also " "write gameplay or high-performance algorithms in C or C++ without " @@ -4384,24 +4418,24 @@ msgid "" "libraries and other Software Development Kits (SDK) in the engine." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:90 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:87 msgid "" "Of course, you can also directly add modules and features to the engine, as " "it's completely free and open-source." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:93 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:90 msgid "" "These are the five officially supported programming languages. The community " "maintains support for many more. For more information, see :ref:`GDNative " "third-party bindings `." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:99 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:96 msgid "What do I need to know to use Godot?" msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:101 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:98 msgid "" "Godot is a feature-packed game engine. With its thousands of features, there " "is a lot to learn. To make the most of it, you need good programming " @@ -4409,14 +4443,14 @@ msgid "" "lot from knowing how to think like a programmer first." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:106 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:103 msgid "" "Godot relies on the object-oriented programming paradigm. Being comfortable " "with concepts such as classes and objects will help you code efficiently in " "it." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:109 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:106 msgid "" "If you are entirely new to programming, we recommend following the `CS50 " "open courseware`_ from Harvard University. It's a great free course that " @@ -4424,20 +4458,20 @@ msgid "" "will save you countless hours and hurdles learning any game engine afterward." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:114 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:111 msgid "" "In CS50, you will learn multiple programming languages. Don't be afraid of " "that: programming languages have many similarities. The skills you learn " "with one language transfer well to others." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:118 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:115 msgid "" "We will provide you with more Godot-specific learning resources in :ref:" "`doc_learning_new_features`." msgstr "" -#: ../../docs/getting_started/introduction/introduction_to_godot.rst:121 +#: ../../docs/getting_started/introduction/introduction_to_godot.rst:118 msgid "" "In the next part, you will get an overview of the engine's essential " "concepts." @@ -4485,7 +4519,7 @@ msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:35 #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:13 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:143 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:148 #: ../../docs/development/file_formats/tscn.rst:30 msgid "Nodes" msgstr "" @@ -4537,7 +4571,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:70 -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1394 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1409 #: ../../docs/tutorials/scripting/gdscript/gdscript_styleguide.rst:582 #: ../../docs/tutorials/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/scripting/gdnative/gdnative_cpp_example.rst:559 @@ -4574,10 +4608,10 @@ msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:90 #: ../../docs/getting_started/step_by_step/instancing.rst:212 -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:172 -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:125 -#: ../../docs/getting_started/step_by_step/signals.rst:370 -#: ../../docs/tutorials/2d/2d_movement.rst:355 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:190 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:180 +#: ../../docs/getting_started/step_by_step/signals.rst:375 +#: ../../docs/tutorials/2d/2d_movement.rst:360 #: ../../docs/tutorials/2d/2d_sprite_animation.rst:264 #: ../../docs/tutorials/export/exporting_pcks.rst:138 #: ../../docs/tutorials/scripting/gdscript/static_typing.rst:381 @@ -4634,9 +4668,10 @@ msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:27 msgid "" -"At the top of the window, there is another tab named \"Templates\". You can " -"search for demo projects in the open-source asset library, which includes " -"many projects developed by the community." +"At the top of the window, there is another tab named \"Asset Library " +"Projects\". In the open-source asset library you can search for demo " +"projects, templates, and completed projects, including many that are " +"developed by the community." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:33 @@ -5114,11 +5149,11 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:18 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:10 #: ../../docs/community/asset_library/using_assetlib.rst:16 -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:123 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:126 msgid "|image0|" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:183 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:194 #: ../../docs/getting_started/first_2d_game/index.rst:76 #: ../../docs/getting_started/first_3d_game/index.rst:70 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:159 @@ -5127,10 +5162,10 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:336 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:345 #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:464 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:452 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:457 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:534 #: ../../docs/community/asset_library/using_assetlib.rst:187 -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:211 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:214 msgid "image0" msgstr "" @@ -5163,7 +5198,7 @@ msgstr "" msgid "|image1|" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:184 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:195 #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:148 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:160 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:404 @@ -5171,7 +5206,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:337 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:346 #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:465 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:453 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:458 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:535 #: ../../docs/community/asset_library/using_assetlib.rst:188 msgid "image1" @@ -5210,7 +5245,7 @@ msgstr "" msgid "|image2|" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:185 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:196 #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:149 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:161 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:405 @@ -5218,7 +5253,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:338 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:347 #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:466 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:454 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:459 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:536 #: ../../docs/community/asset_library/using_assetlib.rst:189 msgid "image2" @@ -5269,7 +5304,7 @@ msgstr "" msgid "|image3|" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:186 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:197 #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:150 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:162 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:406 @@ -5277,7 +5312,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:339 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:348 #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:467 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:455 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:460 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:537 #: ../../docs/community/asset_library/using_assetlib.rst:190 msgid "image3" @@ -5313,7 +5348,7 @@ msgstr "" msgid "|image4|" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:187 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:198 #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:151 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:163 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:407 @@ -5321,7 +5356,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:340 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:349 #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:468 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:456 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:461 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:538 #: ../../docs/community/asset_library/using_assetlib.rst:191 msgid "image4" @@ -5333,11 +5368,11 @@ msgid "" "states and transitions visually.*" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:112 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:123 msgid "Open source" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:114 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:125 msgid "" "Godot offers a fully open source codebase under the **MIT license**. This " "means all the technologies that ship with it have to be Free (as in freedom) " @@ -5345,14 +5380,14 @@ msgid "" "contributors." msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:119 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:130 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " "just won't ship with the engine. This may include Google AdMob, or FMOD. Any " "of these can come as third-party plugins instead." msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:124 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:135 msgid "" "On the other hand, an open codebase means you can **learn from and extend " "the engine** to your heart's content. You can also debug games easily, as " @@ -5360,17 +5395,17 @@ msgid "" "engine itself." msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:130 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:141 msgid "" "This **does not affect the work you do with Godot** in any way: there's no " "strings attached to the engine or anything you make with it." msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:134 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:145 msgid "Community-driven" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:136 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:147 msgid "" "**Godot is made by its community, for the community, and for all game " "creators out there.** It's the needs of the users and open discussions that " @@ -5378,7 +5413,7 @@ msgid "" "what will benefit the most users first." msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:141 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:152 msgid "" "That said, although a handful of core developers work on it full-time, the " "project has over 600 contributors at the time of writing. Benevolent " @@ -5387,11 +5422,11 @@ msgid "" "release." msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:148 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:159 msgid "The Godot editor is a Godot game" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:150 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:161 msgid "" "The Godot editor runs on the game engine. It uses the engine's own UI " "system, it can hot-reload code and scenes when you test your projects, or " @@ -5399,13 +5434,13 @@ msgid "" "scenes for your games, or **build plugins and extend the editor.**" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:155 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:166 msgid "" "This leads to a reliable and flexible UI system, as it powers the editor " "itself. With the ``tool`` keyword, you can run any game code in the editor." msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:158 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:169 #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:46 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:68 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:366 @@ -5419,7 +5454,7 @@ msgstr "" msgid "|image5|" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:188 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:199 #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:152 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:164 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:408 @@ -5427,20 +5462,20 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:341 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:350 #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:469 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:457 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:462 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:539 #: ../../docs/community/asset_library/using_assetlib.rst:192 msgid "image5" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:160 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:171 msgid "" "*RPG in a Box is a voxel RPG editor made with Godot 2. It uses Godot's UI " "tools for its node-based programming system and for the rest of the " "interface.*" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:164 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:175 msgid "" "Put the ``tool`` keyword at the top of any GDScript file and it will run in " "the editor. This lets you import and export plugins, create plugins like " @@ -5448,18 +5483,18 @@ msgid "" "in your projects." msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:171 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:182 msgid "" "The editor is fully written in C++ and is statically compiled into the " "binary. This means you can't import it as a typical project that would have " "a ``project.godot`` file." msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:176 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:187 msgid "Separate 2D and 3D engines" msgstr "" -#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:178 +#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:189 msgid "" "Godot offers dedicated 2D and 3D rendering engines. As a result, **the base " "unit for 2D scenes is pixels.** Even though the engines are separate, you " @@ -5594,23 +5629,23 @@ msgstr "" msgid "" "In an empty scene, the Scene dock on the left shows several options to add a " "root node quickly. \"2D Scene\" adds a Node2D node, \"3D Scene\" adds a " -"Spatial node, \"User Interface\" adds a Control node, and \"Other Node\" " -"lets you select any node. It is equivalent to pressing the \"Add Child " -"Node\" button. These presets are here for convenience; they are not " -"mandatory." +"Spatial node, and \"User Interface\" adds a Control node. These presets are " +"here for convenience; they are not mandatory. \"Other Node\" lets you select " +"any node to be the root node. In an empty scene, \"Other Node\" is " +"equivalent to pressing the \"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:79 +#: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:81 msgid "" "We're going to add a single Label node to our scene. Its function is to draw " "text on the screen." msgstr "" -#: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:82 +#: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:84 msgid "" -"Press the \"Add Child Node\" button at the top left of the Scene dock to " -"create a node. This button adds the chosen node as a child of the currently " -"selected one or, in an empty scene, as the root." +"Press the \"Add Child Node\" button or \"Other Node\" to create a root node." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:88 @@ -5675,7 +5710,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:132 msgid "" "Everything's ready to run the scene! Press the Play Scene button in the top-" -"right of the screen or press :kbd:`F6`." +"right of the screen or press :kbd:`F6` (:kbd:`Cmd + R` on macOS)." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:137 @@ -5722,7 +5757,7 @@ msgstr "" msgid "" "To run our test scene, we used the Play Scene button. Another button next to " "it allows you to set and run the project's main scene. You can press :kbd:" -"`F5` to do so." +"`F5` (:kbd:`Cmd + B` on macOS) to do so." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:173 @@ -5769,15 +5804,15 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:11 msgid "" -"You can create as many scenes as you'd like and save them to the disk with " -"the ``.tscn`` extension, which stands for \"text scene\". The ``Label.tscn`` " +"You can create as many scenes as you'd like and save them as files with the " +"``.tscn`` extension, which stands for \"text scene\". The ``Label.tscn`` " "file from the previous lesson was an example. We call those files \"Packed " "Scenes\" as they pack information about your scene's content." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:16 msgid "" -"Here's the example of a ball. It's composed of a :ref:`RigidBody2D " +"Here's an example of a ball. It's composed of a :ref:`RigidBody2D " "` node as its root named Ball, which allows the ball to " "fall and bounce on walls, a :ref:`Sprite ` node, and a :ref:" "`CollisionShape2D `." @@ -5787,7 +5822,7 @@ msgstr "" msgid "" "Once you saved a scene, it works as a blueprint: you can reproduce it in " "other scenes as many times as you'd like. Replicating an object from a " -"template like so is called **instancing**." +"template like this is called **instancing**." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:29 @@ -5811,9 +5846,9 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:41 msgid "" -"Let's use instancing in practice to see how it works exactly in Godot. We " -"invite you to download the ball's sample project we prepared for you: :" -"download:`instancing.zip `." +"Let's use instancing in practice to see how it works in Godot. We invite you " +"to download the ball's sample project we prepared for you: :download:" +"`instancing.zip `." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:45 @@ -5901,9 +5936,9 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:110 msgid "" -"Change the default properties of every Ball by opening ``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." +"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:114 @@ -6093,9 +6128,9 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:16 msgid "" "For example, take a game where a Camera2D node follows a ship. The Camera2D " -"node follows its parent by default. Imagine you want it to shake when the " -"player takes damage. As this feature is not built-into Godot, you would " -"attach a script to it and code the camera shake." +"node follows its parent by default. Imagine you want the camera to shake " +"when the player takes damage. As this feature is not built into Godot, you " +"would attach a script to the Camera2D node and code the shake." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:24 @@ -6105,9 +6140,10 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:26 msgid "" "Godot offers **five gameplay programming languages**: GDScript, C#, " -"VisualScript, and C++ and C via its GDNative technology. There are more :ref:" -"`community-supported languages `, " -"but these are the official ones." +"VisualScript, and, via its GDNative technology, C and C++. There are more :" +"ref:`community-supported languages " +"`, but these are the official " +"ones." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:31 @@ -6125,11 +6161,11 @@ msgid "" "and developers." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:41 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:51 msgid "Which language should I use?" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:43 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:53 msgid "" "If you're a beginner, we recommend to **start with GDScript**. We made this " "language specifically for Godot and the needs of game developers. It has a " @@ -6137,20 +6173,20 @@ msgid "" "with Godot." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:50 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:60 msgid "" "For C#, you will need an external code editor like `VSCode `_ or Visual Studio. While C# support is now mature, you " -"will also find fewer learning resources for it compared to GDScript. That's " -"why we recommend C# mainly to users who already have experience with the " +"will find fewer learning resources for it compared to GDScript. That's why " +"we recommend C# mainly to users who already have experience with the " "language." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:56 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:66 msgid "Let's look at each language's features, as well as its pros and cons." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:59 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:69 #: ../../docs/getting_started/first_2d_game/01.project_setup.rst:13 #: ../../docs/tutorials/performance/cpu_optimization.rst:171 #: ../../docs/tutorials/scripting/gdscript/index.rst:2 @@ -6168,7 +6204,7 @@ msgstr "" msgid "GDScript" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:61 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:71 msgid "" ":ref:`GDScript` is an `object-oriented `_ and `imperative `_, as this feature eventually gets in " @@ -6213,32 +6246,32 @@ msgid "" "you need to." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:81 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:89 msgid "" "`Gradual typing `_. Variables " "have dynamic types by default, but you also can use type hints for strong " "type checks." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:85 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:93 msgid "" "GDScript looks like Python as you structure your code blocks using " "indentations, but it doesn't work the same way in practice. It's inspired by " "multiple languages, including Squirrel, Lua, and Python." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:91 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:99 msgid "Why don't we use Python or Lua directly?" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:93 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:101 msgid "" "Years ago, Godot used Python, then Lua. Both languages' integration took a " "lot of work and had severe limitations. For example, threading support was a " "big challenge with Python." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:97 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:105 msgid "" "Developing a dedicated language doesn't take us more work and we can tailor " "it to game developers' needs. We're now working on performance optimizations " @@ -6246,11 +6279,11 @@ msgid "" "languages." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:103 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:111 msgid ".NET / C#" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:105 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:113 msgid "" "As Microsoft's `C# `_ is a favorite amongst game developers, we " @@ -6259,20 +6292,20 @@ msgid "" "donation from Microsoft." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:113 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:121 msgid "" "C# offers a good tradeoff between performance and ease of use, although you " "should be aware of its garbage collector." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:116 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:124 msgid "" "You must use the Mono edition of the Godot editor to script in C#. You can " "download it on the Godot website's `download `_ page." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:120 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:128 msgid "" "Since Godot uses the `Mono `_ .NET runtime, in " "theory, you can use any third-party .NET library or framework in Godot, as " @@ -6281,7 +6314,7 @@ msgid "" "supported .NET option." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:125 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:133 msgid "" "GDScript code itself doesn't execute as fast as compiled C# or C++. However, " "most script code calls functions written with fast algorithms in C++ code " @@ -6289,81 +6322,81 @@ msgid "" "C++ won't have a significant impact on performance." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:132 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:140 #: ../../docs/tutorials/scripting/visual_script/index.rst:2 msgid "VisualScript" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:134 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:152 msgid "" ":ref:`Visual Scripting` is a graph-based visual " "programming language where you connect blocks. It can be a great tool for " "non-programmers like game designers and artists." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:140 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:158 msgid "" "You can use other languages to create custom blocks that are specific to " -"your game. For example, to script AIs, quests, or dialogues. That's where " +"your game, for example, to script AIs, quests, or dialogues. That's where " "the strength of VisualScript lies." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:144 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:162 msgid "" "While it provides all the basic building blocks you need to code complete " "games, we do not recommend to use VisualScript this way. Programming " "everything with it is slow compared to using other programming languages." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:150 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:168 msgid "" "For more information, see :ref:`Getting started with VisualScript " "`." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:154 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:172 msgid "C and C++ via GDNative" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:156 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:174 msgid "" "GDNative allows you to write game code in C or C++ without needing to " "recompile or even restart Godot." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:161 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:179 msgid "" "You can use any version of the language or mix compiler brands and versions " "for the generated shared libraries, thanks to our use of an internal C API " "Bridge." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:164 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:182 msgid "" -"This language is the best choice for performance. You don't need to use it " +"GDNative is the best choice for performance. You don't need to use it " "throughout an entire game, as you can write other parts in GDScript, C#, or " "VisualScript." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:168 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:186 msgid "" "When working with GDNative, the available types, functions, and properties " "closely resemble Godot's actual C++ API." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:174 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:192 msgid "" "Scripts are files containing code that you attach to a node to extend its " "functionality." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:177 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:195 msgid "" "Godot supports five official scripting languages, offering you flexibility " "between performance and ease of use." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_languages.rst:180 +#: ../../docs/getting_started/step_by_step/scripting_languages.rst:198 msgid "" "You can mix languages, for instance, to implement demanding algorithms with " "C or C++ and write most of the game logic with GDScript or C#." @@ -6377,44 +6410,50 @@ msgstr "" msgid "" "In this lesson, you will code your first script to make the Godot icon turn " "in circles using GDScript. As we mentioned :ref:`in the introduction `, we assume you have programming foundations." +"learn-introduction>`, we assume you have programming foundations. The " +"equivalent C# code has been included in another tab for convenience." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:27 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:28 msgid "" "To learn more about GDScript, its keywords, and its syntax, head to the :ref:" "`GDScript reference`." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:31 +msgid "" +"To learn more about C#, head to the :ref:`C# basics ` page." +msgstr "" + +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:34 #: ../../docs/tutorials/2d/using_tilemaps.rst:21 msgid "Project setup" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:33 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:36 msgid "" "Please create a new project to start with a clean slate. Your project should " "contain one picture: the Godot icon, which we often use for prototyping in " "the community." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:39 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:42 msgid "" "We need to create a Sprite node to display it in the game. In the Scene " "dock, click the Other Node button." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:44 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:47 msgid "" "Type \"Sprite\" in the search bar to filter nodes and double-click on Sprite " "to create the node." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:49 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:52 msgid "Your Scene tab should now only have a Sprite node." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:53 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:56 msgid "" "A Sprite 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 " @@ -6422,47 +6461,47 @@ msgid "" "Texture slot." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:61 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:64 msgid "" "You can create Sprite nodes automatically by dragging and dropping images on " "the viewport." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:66 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:69 msgid "" "Then, click and drag the icon in the viewport to center it in the game view." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:71 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:74 msgid "Creating a new script" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:73 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:76 msgid "" "To create and attach a new script to our node, right-click on Sprite in the " "scene dock and select \"Attach Script\"." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:78 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:81 msgid "" "The 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:81 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:84 msgid "" "Change the Template from Default to Empty to start with a clean file. Leave " "the other options by default and click the Create button to create the " "script." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:86 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:89 msgid "" "The Script workspace should appear with your new ``Sprite.gd`` file open and " "the following line of code:" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:94 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:116 msgid "" "Every GDScript file is implicitly a class. The ``extends`` keyword defines " "the class this script inherits or extends. In this case, it's ``Sprite``, " @@ -6471,48 +6510,48 @@ msgid "" "``CanvasItem``, and ``Node``." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:100 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:122 msgid "" "In GDScript, if you omit the line with the ``extends`` keyword, your class " "will implicitly extend :ref:`Reference `, which Godot uses " "to manage your application's memory." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:104 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:126 msgid "" "Inherited properties include the ones you can see in the Inspector dock, " "like our node's ``texture``." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:109 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:131 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\", lowercase, and words separated by an " -"underscore." +"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:113 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:135 msgid "" "You can hover any property's name in the Inspector to see a description and " "its identifier in code." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:117 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:139 msgid "Hello, world!" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:119 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:141 msgid "" "Our script currently doesn't do anything. Let's make it print the text " "\"Hello, world!\" to the Output bottom panel to get started." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:122 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:144 msgid "Add the following code to your script:" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:130 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:160 msgid "" "Let's break it down. The ``func`` keyword defines a new function named " "``_init``. This is a special name for our class's constructor. The engine " @@ -6520,52 +6559,54 @@ msgid "" "define this function." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:135 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:165 msgid "" "GDScript is an indent-based language. The tab at the start of the line that " "says ``print()`` is necessary for the code to work. If you omit it or don't " "indent a line correctly, the editor will highlight it in red and display the " -"following error message: \"Unexpected indentation.\"" +"following error message: \"Indented block expected\"." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:140 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:170 msgid "" -"Save the scene if you haven't already, then press :kbd:`F6` to run it. Look " -"at the Output bottom panel that expands. It should display \"Hello, world!\"" +"Save the scene 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!\"." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:145 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:176 msgid "" "Delete the ``_init()`` function, so you're only left with the line ``extends " "Sprite``." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:149 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:180 msgid "Turning around" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:151 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:182 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." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:163 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:197 msgid "" -"Member variables sit at the top of the script, before functions. Every node " -"instance with this script attached to it will have its own copy of the " -"``speed`` and ``angular_speed`` properties." +"Member variables sit near the top of the script, after any \"extends\" " +"lines, but before functions. Every node instance with this script attached " +"to it will have its own copy of the ``speed`` and ``angular_speed`` " +"properties." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:167 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:202 msgid "" -"As in some other engines, angles in Godot work in radians by default, but " -"you have built-in functions and properties available if you prefer to " -"calculate angles in degrees instead." +"Angles in Godot work in radians by default, but you have built-in functions " +"and properties available if you prefer to calculate angles in degrees " +"instead." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:171 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:206 msgid "" "To move our icon, we need to update its position and rotation every frame in " "the game loop. We can use the ``_process()`` virtual function of the " @@ -6574,7 +6615,7 @@ msgid "" "argument named ``delta``, the time elapsed since the last frame." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:179 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:214 msgid "" "Games work by rendering many images per second, each called a frame, and " "they do so in a loop. We measure the rate at which a game produces images in " @@ -6583,7 +6624,7 @@ msgid "" "reality games." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:185 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:220 msgid "" "The engine and game developers do their best to update the game world and " "render images at a constant time interval, but there are always small " @@ -6591,11 +6632,11 @@ msgid "" "this delta time value, making our motion independent of our framerate." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:190 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:225 msgid "At the bottom of the script, define the function:" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:198 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:240 msgid "" "The ``func`` keyword defines a new function. After it, we have to write the " "function's name and arguments it takes in parentheses. A colon ends the " @@ -6603,7 +6644,7 @@ msgid "" "or instructions." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:203 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:245 msgid "" "Notice how ``_process()``, like ``_init()``, starts with a leading " "underscore. By convention, Godot's virtual functions, that is to say, built-" @@ -6611,7 +6652,7 @@ msgid "" "underscore." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:208 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:250 msgid "" "The line inside the function, ``rotation += angular_speed * delta``, " "increments our sprite's rotation every frame. Here, ``rotation`` is a " @@ -6619,29 +6660,29 @@ msgid "" "controls the rotation of our node and works with radians." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:213 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:255 msgid "" "In the code editor, you can ctrl-click on any built-in property or function " "like ``position``, ``rotation``, or ``_process`` to open the corresponding " "documentation in a new tab." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:217 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:259 msgid "Run the scene to see the Godot icon turn in-place." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:222 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:264 msgid "Moving forward" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:224 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:266 msgid "" "Let's now make the node move. Add the following two lines to the " "``_process()`` function, ensuring the new lines are indented the same way as " "the one before them." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:235 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:283 msgid "" "As we already saw, the ``var`` keyword defines a new variable. If you put it " "at the top of the script, it defines a property of the class. Inside a " @@ -6649,7 +6690,7 @@ msgid "" "scope." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:239 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:287 msgid "" "We define a local variable named ``velocity``, a 2D vector representing both " "a direction and a speed. To make the node move forward, we start from the " @@ -6660,38 +6701,38 @@ msgid "" "move the node forward." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:246 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:294 msgid "" "We add ``velocity * delta`` to the node's ``position`` to move it. The " "position itself is of type :ref:`Vector2 `, a built-in type " "in Godot representing a 2D vector." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:250 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:298 msgid "Run the scene to see the Godot head run in circles." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:254 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:302 msgid "" "Moving a node like that does not take into account colliding with walls or " "the floor. In :ref:`doc_your_first_2d_game`, you will learn another approach " "to moving objects while detecting collisions." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:258 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:306 msgid "" "Our node currently moves by itself. In the next part :ref:" "`doc_scripting_player_input`, we'll use player input to control it." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:262 -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:91 -#: ../../docs/getting_started/step_by_step/signals.rst:271 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:310 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:113 +#: ../../docs/getting_started/step_by_step/signals.rst:276 msgid "Complete script" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:264 -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:93 +#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:312 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:115 msgid "Here is the complete ``Sprite.gd`` file for reference." msgstr "" @@ -6739,7 +6780,7 @@ msgid "" "line with the code below." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:45 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:59 msgid "" "Our ``direction`` local variable is a multiplier representing the direction " "in which the player wants to turn. A value of ``0`` means the player isn't " @@ -6747,21 +6788,21 @@ msgid "" "wants to turn right, and ``-1`` means they want to turn left." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:50 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:64 msgid "" "To produce these values, we introduce conditions and the use of ``Input``. A " "condition starts with the ``if`` keyword in GDScript and ends with a colon. " "The condition is the expression between the keyword and the end of the line." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:54 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:68 msgid "" "To check if a key was pressed this frame, we call ``Input." "is_action_pressed()``. The method takes a text string representing an input " "action and returns ``true`` if the action is pressed, ``false`` otherwise." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:58 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:72 msgid "" "The two actions we use above, \"ui_left\" and \"ui_right\", are predefined " "in every Godot project. They respectively trigger when the player presses " @@ -6769,55 +6810,55 @@ msgid "" "pad." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:62 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:76 msgid "" "You can see and edit input actions in your project by going to Project -> " "Project Settings and clicking on the Input Map tab." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:65 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:79 msgid "" "Finally, we use the ``direction`` as a multiplier when we update the node's " "``rotation``: ``rotation += angular_speed * direction * delta``." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:68 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:82 msgid "" "If you run the scene with this code, the icon should rotate when you press :" "kbd:`Left` and :kbd:`Right`." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:72 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:86 msgid "Moving when pressing \"up\"" msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:74 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:88 msgid "" "To only move when pressing a key, we need to modify the code that calculates " "the velocity. Replace the line starting with ``var velocity`` with the code " "below." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:84 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:106 msgid "" "We initialize the ``velocity`` with a value of ``Vector2.ZERO``, another " "constant of the built-in ``Vector`` type representing a 2D vector of length " "0." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:87 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:109 msgid "" "If the player presses the \"ui_up\" action, we then update the velocity's " "value, causing the sprite to move forward." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:119 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:174 msgid "" "If you run the scene, you should now be able to rotate with the left and " "right arrow keys and move forward by pressing :kbd:`Up`." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:127 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:182 msgid "" "In summary, every script in Godot represents a class and extends one of the " "engine's built-in classes. The node types your classes inherit from give you " @@ -6826,14 +6867,14 @@ msgid "" "example." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:132 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:187 msgid "" "In GDScript, the variables you put at the top of the file are your class's " "properties, also called member variables. Besides variables, you can define " "functions, which, for the most part, will be your classes' methods." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:136 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:191 msgid "" "Godot provides several virtual functions you can define to connect your " "class with the engine. These include ``_process()``, to apply changes to the " @@ -6841,13 +6882,13 @@ msgid "" "key and button presses from the users. There are quite a few more." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:141 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:196 msgid "" "The ``Input`` singleton allows you to react to the players' input anywhere " "in your code. In particular, you'll get to use it in the ``_process()`` loop." msgstr "" -#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:144 +#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:199 msgid "" "In the next lesson :ref:`doc_signals`, we'll build upon the relationship " "between scripts and nodes by having our nodes trigger code in scripts." @@ -6871,9 +6912,9 @@ msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:18 msgid "" -"It is a delegation mechanism built into Godot that allows one game object to " -"react to a change in another without them referencing one another. Using " -"signals limits `coupling `_ and keeps your code flexible." msgstr "" @@ -6956,7 +6997,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:78 msgid "" "You can also write a label on the Button by editing its Text property in the " -"Inspector." +"Inspector. Enter \"Toggle motion\"." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:83 @@ -6964,14 +7005,16 @@ msgid "Your scene tree and viewport should look like this." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:87 -msgid "Save your newly created scene. You can then run it with :kbd:`F6`." -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:90 -msgid "Connecting a signal in the editor" +msgid "" +"Save your newly created scene. You can then run it with :kbd:`F6`. At the " +"moment, the button will be visible, but nothing will happen if you press it." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:92 +msgid "Connecting a signal in the editor" +msgstr "" + +#: ../../docs/getting_started/step_by_step/signals.rst:94 msgid "" "Here, we want to connect the Button's \"pressed\" signal to our Sprite, and " "we want to call a new function that will toggle its motion on and off. We " @@ -6979,22 +7022,22 @@ msgid "" "previous lesson." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:96 +#: ../../docs/getting_started/step_by_step/signals.rst:98 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." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:101 +#: ../../docs/getting_started/step_by_step/signals.rst:103 msgid "The dock displays a list of signals available on the selected node." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:105 +#: ../../docs/getting_started/step_by_step/signals.rst:107 msgid "Double-click the \"pressed\" signal to open the node connection window." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:109 +#: ../../docs/getting_started/step_by_step/signals.rst:111 msgid "" "There, you can connect the signal to the Sprite node. The node needs a " "receiver method, a function that Godot will call when the Button emits the " @@ -7003,41 +7046,41 @@ msgid "" "\"_on_Button_pressed\"." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:116 +#: ../../docs/getting_started/step_by_step/signals.rst:118 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:122 +#: ../../docs/getting_started/step_by_step/signals.rst:124 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 radio button." +"the window's bottom-right by clicking the Advanced button." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:127 +#: ../../docs/getting_started/step_by_step/signals.rst:129 msgid "" -"Click the connect button to complete the signal connection and jump to the " +"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." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:133 +#: ../../docs/getting_started/step_by_step/signals.rst:135 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:138 +#: ../../docs/getting_started/step_by_step/signals.rst:140 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:141 +#: ../../docs/getting_started/step_by_step/signals.rst:143 msgid "" "Our Sprite moves thanks to code in the ``_process()`` function. Godot " "provides a method to toggle processing on and off: :ref:`Node.set_process() " @@ -7046,88 +7089,88 @@ msgid "" "use the ``not`` keyword to invert the value." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:153 +#: ../../docs/getting_started/step_by_step/signals.rst:155 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:156 +#: ../../docs/getting_started/step_by_step/signals.rst:158 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:168 +#: ../../docs/getting_started/step_by_step/signals.rst:170 msgid "Your complete ``Sprite.gd`` code should look like the following." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:188 +#: ../../docs/getting_started/step_by_step/signals.rst:190 msgid "" "Run the scene now and click the button to see the sprite start and stop." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:191 +#: ../../docs/getting_started/step_by_step/signals.rst:193 msgid "Connecting a signal via code" msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:193 +#: ../../docs/getting_started/step_by_step/signals.rst:195 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:196 +#: ../../docs/getting_started/step_by_step/signals.rst:198 msgid "" "Let's use a different node here. Godot has a :ref:`Timer ` node " "that's useful to implement skill cooldown times, weapon reloading, and more." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:199 +#: ../../docs/getting_started/step_by_step/signals.rst:201 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:`Alt + 1` on macOS)." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:202 +#: ../../docs/getting_started/step_by_step/signals.rst:204 msgid "" "In the Scene dock, right-click on the Sprite 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:208 +#: ../../docs/getting_started/step_by_step/signals.rst:210 msgid "" "With the Timer node selected, go to the Inspector and check the " "**Autostart** property." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:213 +#: ../../docs/getting_started/step_by_step/signals.rst:215 msgid "" "Click the script icon next to Sprite to jump back to the scripting workspace." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:217 +#: ../../docs/getting_started/step_by_step/signals.rst:219 msgid "We need to do two operations to connect the nodes via code:" msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:219 +#: ../../docs/getting_started/step_by_step/signals.rst:221 msgid "Get a reference to the Timer from the Sprite." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:220 +#: ../../docs/getting_started/step_by_step/signals.rst:222 msgid "Call the Timer's ``connect()`` method." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:222 +#: ../../docs/getting_started/step_by_step/signals.rst:224 msgid "" "To connect to a signal via code, you need to call the ``connect()`` method " "of the node 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:226 +#: ../../docs/getting_started/step_by_step/signals.rst:228 msgid "" "We want to connect the signal when the scene is instantiated, and we can do " "that using the :ref:`Node._ready() ` built-in " @@ -7135,14 +7178,14 @@ msgid "" "instantiated." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:230 +#: ../../docs/getting_started/step_by_step/signals.rst:232 msgid "" "To get a reference to a node relative to the current one, we use the method :" "ref:`Node.get_node() `. We can store the " "reference in a variable." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:240 +#: ../../docs/getting_started/step_by_step/signals.rst:242 msgid "" "The function ``get_node()`` looks at the Sprite's children and gets nodes by " "their name. For example, if you renamed the Timer node to \"BlinkingTimer\" " @@ -7150,12 +7193,12 @@ msgid "" "``get_node(\"BlinkingTimer\")``." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:246 +#: ../../docs/getting_started/step_by_step/signals.rst:248 msgid "" "We can now connect the Timer to the Sprite in the ``_ready()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:255 +#: ../../docs/getting_started/step_by_step/signals.rst:257 msgid "" "The line reads like so: we connect the Timer's \"timeout\" signal to the " "node to which the script is attached (``self``). When the Timer emits " @@ -7164,30 +7207,36 @@ msgid "" "toggle our sprite's visibility." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:266 +#: ../../docs/getting_started/step_by_step/signals.rst:268 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:273 +#: ../../docs/getting_started/step_by_step/signals.rst:272 +msgid "" +"If you run the 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:278 msgid "" "That's it for our little moving and blinking Godot icon demo! Here is the " "complete ``Sprite.gd`` file for reference." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:304 +#: ../../docs/getting_started/step_by_step/signals.rst:309 msgid "Custom signals" msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:306 +#: ../../docs/getting_started/step_by_step/signals.rst:311 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:309 +#: ../../docs/getting_started/step_by_step/signals.rst:314 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, " @@ -7195,29 +7244,29 @@ msgid "" "health reaches 0." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:323 +#: ../../docs/getting_started/step_by_step/signals.rst:328 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:326 +#: ../../docs/getting_started/step_by_step/signals.rst:331 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." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:331 +#: ../../docs/getting_started/step_by_step/signals.rst:336 msgid "To emit a signal in your scripts, call ``emit_signal()``." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:341 +#: ../../docs/getting_started/step_by_step/signals.rst:346 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:353 +#: ../../docs/getting_started/step_by_step/signals.rst:358 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 " @@ -7225,34 +7274,34 @@ msgid "" "correct values." msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:358 +#: ../../docs/getting_started/step_by_step/signals.rst:363 msgid "" "To emit values along with the signal, add them as extra arguments to the " "``emit_signal()`` function:" msgstr "" -#: ../../docs/getting_started/step_by_step/signals.rst:372 +#: ../../docs/getting_started/step_by_step/signals.rst:377 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:376 +#: ../../docs/getting_started/step_by_step/signals.rst:381 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:380 +#: ../../docs/getting_started/step_by_step/signals.rst:385 msgid "" "For example, an :ref:`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:384 +#: ../../docs/getting_started/step_by_step/signals.rst:389 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." @@ -7285,7 +7334,7 @@ msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:19 msgid "" "The game is called \"Dodge the Creeps!\". Your character must move and avoid " -"the enemies for as long as possible. Here is a preview of the final result:" +"the enemies for as long as possible." msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:22 @@ -8258,8 +8307,8 @@ msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:200 msgid "" -"Drag ``Mob.tscn`` from the \"FileSystem\" panel and drop it in the ``Mob`` " -"property ." +"Drag ``Mob.tscn`` from the \"FileSystem\" dock and drop it in the **Mob " +"Scene** property." msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:202 @@ -8973,7 +9022,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:331 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:342 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:351 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:458 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:463 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:540 #: ../../docs/community/asset_library/using_assetlib.rst:193 msgid "image6" @@ -9004,7 +9053,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:332 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:343 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:352 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:459 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:464 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:541 #: ../../docs/community/asset_library/using_assetlib.rst:194 msgid "image7" @@ -9035,7 +9084,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:333 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:344 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:353 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:460 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:465 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:542 #: ../../docs/community/asset_library/using_assetlib.rst:195 msgid "image8" @@ -9061,7 +9110,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:387 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:230 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:76 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:85 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:90 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:69 #: ../../docs/community/asset_library/using_assetlib.rst:154 msgid "|image9|" @@ -9072,7 +9121,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:412 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:334 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:345 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:461 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:466 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:543 #: ../../docs/community/asset_library/using_assetlib.rst:196 msgid "image9" @@ -9098,7 +9147,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:398 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:234 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:86 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:117 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:122 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:86 #: ../../docs/community/asset_library/using_assetlib.rst:160 msgid "|image10|" @@ -9109,7 +9158,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:413 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:335 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:346 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:462 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:467 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:544 #: ../../docs/community/asset_library/using_assetlib.rst:197 msgid "image10" @@ -9124,7 +9173,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:95 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:116 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:90 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:177 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:182 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:90 #: ../../docs/community/asset_library/using_assetlib.rst:165 msgid "|image11|" @@ -9133,7 +9182,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:158 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:170 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:347 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:463 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:468 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:545 #: ../../docs/community/asset_library/using_assetlib.rst:198 msgid "image11" @@ -9150,7 +9199,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:102 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:120 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:102 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:201 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:206 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:95 #: ../../docs/community/asset_library/using_assetlib.rst:173 msgid "|image12|" @@ -9159,7 +9208,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:159 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:171 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:348 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:464 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:469 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:546 #: ../../docs/community/asset_library/using_assetlib.rst:199 msgid "image12" @@ -9182,7 +9231,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:111 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:125 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:107 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:205 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:210 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:101 #: ../../docs/community/asset_library/using_assetlib.rst:180 msgid "|image13|" @@ -9191,7 +9240,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:160 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:172 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:349 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:465 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:470 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:547 #: ../../docs/community/asset_library/using_assetlib.rst:200 msgid "image13" @@ -9206,7 +9255,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:118 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:133 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:116 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:210 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:215 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:106 #: ../../docs/community/asset_library/using_assetlib.rst:127 msgid "|image14|" @@ -9215,7 +9264,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:161 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:173 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:350 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:466 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:471 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:548 #: ../../docs/community/asset_library/using_assetlib.rst:201 msgid "image14" @@ -9230,7 +9279,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:123 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:139 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:122 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:224 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:229 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:123 msgid "|image15|" msgstr "" @@ -9238,7 +9287,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:162 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:174 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:351 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:467 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:472 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:549 msgid "image15" msgstr "" @@ -9266,7 +9315,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:139 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:144 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:127 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:229 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:234 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:134 msgid "|image16|" msgstr "" @@ -9274,7 +9323,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:163 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:175 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:352 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:468 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:473 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:550 msgid "image16" msgstr "" @@ -9286,7 +9335,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:143 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:148 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:135 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:234 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:239 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:139 msgid "|image17|" msgstr "" @@ -9294,7 +9343,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:164 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:176 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:353 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:469 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:474 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:551 msgid "image17" msgstr "" @@ -9506,14 +9555,14 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:152 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:139 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:324 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:329 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:145 msgid "|image18|" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:177 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:354 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:470 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:475 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:552 msgid "image18" msgstr "" @@ -10228,13 +10277,13 @@ msgid "" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:145 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:329 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:334 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:152 msgid "|image19|" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:355 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:471 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:476 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:553 msgid "image19" msgstr "" @@ -10278,13 +10327,13 @@ msgid "" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:197 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:336 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:341 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:156 msgid "|image20|" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:356 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:472 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:477 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:554 msgid "image20" msgstr "" @@ -10294,13 +10343,13 @@ msgid "Add a new *Timer* node as a child of *Main*. Name it *MobTimer*." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:201 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:347 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:352 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:160 msgid "|image21|" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:357 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:473 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:478 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:555 msgid "image21" msgstr "" @@ -10312,13 +10361,13 @@ msgid "" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:206 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:356 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:361 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:184 msgid "|image22|" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:358 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:474 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:479 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:556 msgid "image22" msgstr "" @@ -10338,12 +10387,12 @@ msgid "" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:216 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:362 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:367 msgid "|image23|" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:359 -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:475 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:480 msgid "image23" msgstr "" @@ -10823,7 +10872,7 @@ msgid "" "Next, select the *MobDetector* node again, and in the *Inspector*, turn off " "its *Monitorable* property. This makes it so other physics nodes cannot " "detect the area. The complementary *Monitoring* property allows it to detect " -"collisions. Then, remove the *Collision -> Layer* and sets the mask to the " +"collisions. Then, remove the *Collision -> Layer* and set the mask to the " "\"enemies\" layer." msgstr "" @@ -11027,34 +11076,50 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:75 msgid "" -"This one expects a font file like the ones you have on your computer. Two " -"common font file formats are TrueType Font (TTF) and OpenType Font (OTF)." +"This one expects a font file like the ones you have on your computer. " +"DynamicFont supports the following formats:" msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:78 +msgid "TrueType (``.ttf``)" +msgstr "" + +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:79 +msgid "OpenType (``.otf``)" +msgstr "" + +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:80 +msgid "Web Open Font Format 1 (``.woff``)" +msgstr "" + +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:81 +msgid "Web Open Font Format 2 (``.woff2``, since Godot 3.5)" +msgstr "" + +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:83 msgid "" -"In the *FileSystem* dock, Expand the ``fonts`` directory and click and drag " +"In the *FileSystem* dock, expand the ``fonts`` directory and click and drag " "the ``Montserrat-Medium.ttf`` file we included in the project onto the *Font " "Data*. The text will reappear in the theme preview." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:82 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:87 msgid "" "The text is a bit small. Set the *Settings -> Size* to ``22`` pixels to " "increase the text's size." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:88 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:93 msgid "Keeping track of the score" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:90 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:95 msgid "" "Let's work on the score next. Attach a new script to the *ScoreLabel* and " "define the ``score`` variable." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:107 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:112 msgid "" "The score should increase by ``1`` every time we squash a monster. We can " "use their ``squashed`` signal to know when that happens. However, as we " @@ -11062,48 +11127,48 @@ msgid "" "editor." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:111 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:116 msgid "" "Instead, we have to make the connection from the code every time we spawn a " "monster." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:114 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:119 msgid "" "Open the script ``Main.gd``. If it's still open, you can click on its name " "in the script editor's left column." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:119 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:124 msgid "" "Alternatively, you can double-click the ``Main.gd`` file in the *FileSystem* " "dock." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:122 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:127 msgid "" "At the bottom of the ``_on_MobTimer_timeout()`` function, add the following " "line." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:142 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:147 msgid "" "This line means that when the mob emits the ``squashed`` signal, the " "*ScoreLabel* node will receive it and call the function " "``_on_Mob_squashed()``." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:145 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:150 msgid "" "Head back to the ``ScoreLabel.gd`` script to define the " "``_on_Mob_squashed()`` callback function." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:148 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:153 msgid "There, we increment the score and update the displayed text." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:165 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:170 msgid "" "The second line uses the value of the ``score`` variable to replace the " "placeholder ``%s``. When using this feature, Godot automatically converts " @@ -11111,17 +11176,17 @@ msgid "" "``print()`` function." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:172 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:177 msgid "" "You can learn more about string formatting here: :ref:`doc_gdscript_printf`." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:174 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:179 msgid "" "You can now play the game and squash a few enemies to see the score increase." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:181 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:186 msgid "" "In a complex game, you may want to completely separate your user interface " "from the game world. In that case, you would not keep track of the score on " @@ -11130,17 +11195,17 @@ msgid "" "keep your code simple. Programming is always a balancing act." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:188 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:193 msgid "Retrying the game" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:190 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:195 msgid "" "We'll now add the ability to play again after dying. When the player dies, " "we'll display a message on the screen and wait for input." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:193 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:198 msgid "" "Head back to the *Main* scene, select the *UserInterface* node, add a " "*ColorRect* node as a child of it and name it *Retry*. This node fills a " @@ -11148,36 +11213,36 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:198 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:203 msgid "" "To make it span over the whole viewport, you can use the *Layout* menu in " "the toolbar." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:203 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:208 msgid "Open it and apply the *Full Rect* command." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:207 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:212 msgid "" "Nothing happens. Well, almost nothing: only the four green pins move to the " "corners of the selection box." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:212 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:217 msgid "" "This is because UI nodes (all the ones with a green icon) work with anchors " "and margins relative to their parent's bounding box. Here, the " "*UserInterface* node has a small size and the *Retry* one is limited by it." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:216 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:221 msgid "" "Select the *UserInterface* and apply *Layout -> Full Rect* to it as well. " "The *Retry* node should now span the whole viewport." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:219 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:224 msgid "" "Let's change its color so it darkens the game area. Select *Retry* and in " "the *Inspector*, set its *Color* to something both dark and transparent. To " @@ -11185,69 +11250,69 @@ msgid "" "color's alpha channel, that is to say, its opacity." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:226 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:231 msgid "" "Next, add a *Label* as a child of *Retry* and give it the *Text* \"Press " "Enter to retry.\"" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:231 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:236 msgid "" "To move it and anchor it in the center of the screen, apply *Layout -> " "Center* to it." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:237 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:242 msgid "Coding the retry option" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:239 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:244 msgid "" "We can now head to the code to show and hide the *Retry* node when the " "player dies and plays again." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:242 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:247 msgid "" "Open the script ``Main.gd``. First, we want to hide the overlay at the start " "of the game. Add this line to the ``_ready()`` function." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:260 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:265 msgid "Then, when the player gets hit, we show the overlay." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:277 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:282 msgid "" "Finally, when the *Retry* node is visible, we need to listen to the player's " "input and restart the game if they press enter. To do this, we use the built-" "in ``_unhandled_input()`` callback." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:281 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:286 msgid "" "If the player pressed the predefined ``ui_accept`` input action and *Retry* " "is visible, we reload the current scene." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:303 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:308 msgid "" "The function ``get_tree()`` gives us access to the global :ref:`SceneTree " "` object, which allows us to reload and restart the current " "scene." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:308 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:313 msgid "Adding music" msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:310 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:315 msgid "" "To add music that plays continuously in the background, we're going to use " "another feature in Godot: :ref:`autoloads `." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:313 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:318 msgid "" "To play audio, all you need to do is add an *AudioStreamPlayer* node to your " "scene and attach an audio file to it. When you start the scene, it can play " @@ -11255,25 +11320,25 @@ msgid "" "the audio nodes are also reset, and the music starts back from the beginning." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:318 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:323 msgid "" "You can use the autoload feature to have Godot load a node or a scene " "automatically at the start of the game, outside the current scene. You can " "also use it to create globally accessible objects." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:322 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:327 msgid "" "Create a new scene by going to the *Scene* menu and clicking *New Scene*." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:326 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:331 msgid "" "Click the *Other Node* button to create an *AudioStreamPlayer* and rename it " "to *MusicPlayer*." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:331 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:336 msgid "" "We included a music soundtrack in the ``art/`` directory, ``House In a " "Forest Loop.ogg``. Click and drag it onto the *Stream* property in the " @@ -11281,56 +11346,56 @@ msgid "" "the start of the game." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:338 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:343 msgid "Save the scene as ``MusicPlayer.tscn``." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:340 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:345 msgid "" "We have to register it as an autoload. Head to the *Project -> Project " "Settings…* menu and click on the *Autoload* tab." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:343 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:348 msgid "" "In the *Path* field, you want to enter the path to your scene. Click the " "folder icon to open the file browser and double-click on ``MusicPlayer." "tscn``. Then, click the *Add* button on the right to register the node." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:349 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:354 msgid "" "If you run the game now, the music will play automatically. And even when " "you lose and retry, it keeps going." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:352 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:357 msgid "" "Before we wrap up this lesson, here's a quick look at how it works under the " "hood. When you run the game, your *Scene* dock changes to give you two tabs: " "*Remote* and *Local*." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:358 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:363 msgid "" "The *Remote* tab allows you to visualize the node tree of your running game. " "There, you will see the *Main* node and everything the scene contains and " "the instantiated mobs at the bottom." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:364 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:369 msgid "" "At the top are the autoloaded *MusicPlayer* and a *root* node, which is your " "game's viewport." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:367 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:372 msgid "" "And that does it for this lesson. In the next part, we'll add an animation " "to make the game both look and feel much nicer." msgstr "" -#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:370 +#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:375 msgid "Here is the complete ``Main.gd`` script for reference." msgstr "" @@ -11361,7 +11426,7 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:20 msgid "" -"Open the player scene, select the player node, and add an animation player " +"Open the player scene, select the player node, and add an *AnimationPlayer* " "node." msgstr "" @@ -11618,10 +11683,10 @@ msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:248 msgid "" -"Open the *Mob* scene, select the animation player node and open the float " -"animation. Next, click on *Animation -> Copy*. Then Open ``Player.tscn`` and " -"open its animation player. Click *Animation -> Paste*. That's it; all " -"monsters will now play the float animation." +"Open the *Player* scene, select the animation player node and open the " +"\"float\" animation. Next, click on **Animation > Copy**. Then open ``Mob." +"tscn`` and open its animation player. Click **Animation > Paste**. That's " +"it; all monsters will now play the float animation." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:253 @@ -11933,8 +11998,8 @@ msgid "Obtaining each transform can be achieved with the following functions:" msgstr "" #: ../../docs/tutorials/2d/2d_transforms.rst:63 -#: ../../docs/tutorials/io/data_paths.rst:45 -#: ../../docs/tutorials/io/data_paths.rst:73 +#: ../../docs/tutorials/io/data_paths.rst:72 +#: ../../docs/tutorials/io/data_paths.rst:121 #: ../../docs/tutorials/io/binary_serialization_api.rst:29 #: ../../docs/tutorials/io/binary_serialization_api.rst:102 #: ../../docs/tutorials/io/binary_serialization_api.rst:113 @@ -11968,7 +12033,7 @@ msgstr "" #: ../../docs/tutorials/io/binary_serialization_api.rst:499 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:246 #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:21 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:569 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:570 #: ../../docs/tutorials/shaders/converting_glsl_to_godot_shaders.rst:98 #: ../../docs/tutorials/shaders/converting_glsl_to_godot_shaders.rst:171 #: ../../docs/tutorials/shaders/converting_glsl_to_godot_shaders.rst:236 @@ -13228,7 +13293,7 @@ msgid "" "the screen will cause the player to move to the target location." msgstr "" -#: ../../docs/tutorials/2d/2d_movement.rst:343 +#: ../../docs/tutorials/2d/2d_movement.rst:348 msgid "" "Note the ``distance_to()`` check we make prior to movement. Without this " "test, the body would \"jitter\" upon reaching the target position, as it " @@ -13236,26 +13301,26 @@ msgid "" "far and repeat." msgstr "" -#: ../../docs/tutorials/2d/2d_movement.rst:348 +#: ../../docs/tutorials/2d/2d_movement.rst:353 msgid "" "Uncommenting the ``look_at()`` line will also turn the body to point in its " "direction of motion if you prefer." msgstr "" -#: ../../docs/tutorials/2d/2d_movement.rst:351 +#: ../../docs/tutorials/2d/2d_movement.rst:356 msgid "" "This technique can also be used as the basis of a \"following\" character. " "The ``target`` position can be that of any object you want to move to." msgstr "" -#: ../../docs/tutorials/2d/2d_movement.rst:357 +#: ../../docs/tutorials/2d/2d_movement.rst:362 msgid "" "You may find these code samples useful as starting points for your own " "projects. Feel free to use them and experiment with them to see what you can " "make." msgstr "" -#: ../../docs/tutorials/2d/2d_movement.rst:360 +#: ../../docs/tutorials/2d/2d_movement.rst:365 msgid "" "You can download this sample project here: :download:`2D_movement_demo.zip " "`" @@ -13953,7 +14018,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:259 -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:100 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:110 msgid "Result:" msgstr "" @@ -14068,7 +14133,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:464 -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:75 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:76 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:130 msgid "Tools" msgstr "" @@ -14616,6 +14681,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/introduction_to_3d.rst:193 +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:18 msgid "Cameras" msgstr "" @@ -14922,25 +14988,25 @@ msgid "" "another (this is called accumulation), or by using the rotation methods." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:164 +#: ../../docs/tutorials/3d/using_transforms.rst:168 msgid "A method in Spatial simplifies this:" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:181 +#: ../../docs/tutorials/3d/using_transforms.rst:185 msgid "This rotates the node relative to the parent node." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:183 +#: ../../docs/tutorials/3d/using_transforms.rst:187 msgid "" "To rotate relative to object space (the node's own transform), use the " "following:" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:197 +#: ../../docs/tutorials/3d/using_transforms.rst:201 msgid "Precision errors" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:199 +#: ../../docs/tutorials/3d/using_transforms.rst:203 msgid "" "Doing successive operations on transforms will result in a loss of precision " "due to floating-point error. This means the scale of each axis may no longer " @@ -14948,72 +15014,72 @@ msgid "" "other." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:201 +#: ../../docs/tutorials/3d/using_transforms.rst:205 msgid "" "If a transform is rotated every frame, it will eventually start deforming " "over time. This is unavoidable." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:203 +#: ../../docs/tutorials/3d/using_transforms.rst:207 msgid "" "There are two different ways to handle this. The first is to " "*orthonormalize* the transform after some time (maybe once per frame if you " "modify it every frame):" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:214 +#: ../../docs/tutorials/3d/using_transforms.rst:218 msgid "" "This will make all axes have ``1.0`` length again and be ``90`` degrees from " "each other. However, any scale applied to the transform will be lost." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:216 +#: ../../docs/tutorials/3d/using_transforms.rst:220 msgid "" "It is recommended you not scale nodes that are going to be manipulated; " "scale their children nodes instead (such as MeshInstance). If you absolutely " "must scale the node, then re-apply it at the end:" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:230 +#: ../../docs/tutorials/3d/using_transforms.rst:234 msgid "Obtaining information" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:232 +#: ../../docs/tutorials/3d/using_transforms.rst:236 msgid "" "You might be thinking at this point: **\"Ok, but how do I get angles from a " "transform?\"**. The answer again is: you don't. You must do your best to " "stop thinking in angles." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:234 +#: ../../docs/tutorials/3d/using_transforms.rst:238 msgid "" "Imagine you need to shoot a bullet in the direction your player is facing. " "Just use the forward axis (commonly ``Z`` or ``-Z``)." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:247 +#: ../../docs/tutorials/3d/using_transforms.rst:251 msgid "" "Is the enemy looking at the player? Use the dot product for this (see the :" "ref:`doc_vector_math` tutorial for an explanation of the dot product):" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:266 +#: ../../docs/tutorials/3d/using_transforms.rst:270 msgid "Strafe left:" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:283 +#: ../../docs/tutorials/3d/using_transforms.rst:287 msgid "Jump:" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:302 +#: ../../docs/tutorials/3d/using_transforms.rst:306 msgid "All common behaviors and logic can be done with just vectors." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:305 +#: ../../docs/tutorials/3d/using_transforms.rst:309 msgid "Setting information" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:307 +#: ../../docs/tutorials/3d/using_transforms.rst:311 msgid "" "There are, of course, cases where you want to set information to a " "transform. Imagine a first person controller or orbiting camera. Those are " @@ -15021,28 +15087,28 @@ msgid "" "in a specific order." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:309 +#: ../../docs/tutorials/3d/using_transforms.rst:313 msgid "" "For such cases, keep the angles and rotations *outside* the transform and " "set them every frame. Don't try to retrieve and re-use them because the " "transform is not meant to be used this way." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:311 +#: ../../docs/tutorials/3d/using_transforms.rst:315 msgid "Example of looking around, FPS style:" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:353 +#: ../../docs/tutorials/3d/using_transforms.rst:357 msgid "" "As you can see, in such cases it's even simpler to keep the rotation " "outside, then use the transform as the *final* orientation." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:356 +#: ../../docs/tutorials/3d/using_transforms.rst:360 msgid "Interpolating with quaternions" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:358 +#: ../../docs/tutorials/3d/using_transforms.rst:362 msgid "" "Interpolating between two transforms can efficiently be done with " "quaternions. More information about how quaternions work can be found in " @@ -15052,11 +15118,11 @@ msgid "" "allow interpolation between them using the closest axis." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:360 +#: ../../docs/tutorials/3d/using_transforms.rst:364 msgid "Converting a rotation to quaternion is straightforward." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:383 +#: ../../docs/tutorials/3d/using_transforms.rst:387 msgid "" "The :ref:`class_Quat` type reference has more information on the datatype " "(it can also do transform accumulation, transform points, etc., though this " @@ -15065,24 +15131,24 @@ msgid "" "they will also suffer from numerical precision errors." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:389 +#: ../../docs/tutorials/3d/using_transforms.rst:393 msgid "" "Quaternions are useful when doing camera/path/etc. interpolations, as the " "result will always be correct and smooth." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:392 +#: ../../docs/tutorials/3d/using_transforms.rst:396 msgid "Transforms are your friend" msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:394 +#: ../../docs/tutorials/3d/using_transforms.rst:398 msgid "" "For most beginners, getting used to working with transforms can take some " "time. However, once you get used to them, you will appreciate their " "simplicity and power." msgstr "" -#: ../../docs/tutorials/3d/using_transforms.rst:396 +#: ../../docs/tutorials/3d/using_transforms.rst:400 msgid "" "Don't hesitate to ask for help on this topic in any of Godot's `online " "communities `_ and, once you become " @@ -15342,10 +15408,11 @@ msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:15 msgid "" -"There are three ways to add a ``SpatialMaterial`` to an object. It can be " -"added in the *Material* property of the mesh. It can be added in the " -"*Material* property of the node using the mesh (such as a MeshInstance " -"node), or in the *Material Override* property of the node using the mesh." +"There are 4 ways to add a ``SpatialMaterial`` to an object. It can be added " +"in the *Material* property of the mesh. It can be added in the *Material* " +"property of the node using the mesh (such as a MeshInstance node), the " +"*Material Override* property of the node using the mesh, and the *Material " +"Overlay*." msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:22 @@ -15359,22 +15426,29 @@ msgid "" "property of the mesh." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:30 +#: ../../docs/tutorials/3d/spatial_material.rst:29 +msgid "" +"The *Material Overlay* property will render a material **over** the current " +"one being used by the mesh. As an example, this can be used to put a " +"transparent shield effect on a mesh." +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:33 #: ../../docs/tutorials/assets_pipeline/importing_images.rst:135 msgid "Flags" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:32 +#: ../../docs/tutorials/3d/spatial_material.rst:35 msgid "" "Spatial materials have many flags determining the general usage of a " "material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:37 +#: ../../docs/tutorials/3d/spatial_material.rst:40 msgid "Transparent" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:39 +#: ../../docs/tutorials/3d/spatial_material.rst:42 msgid "" "In Godot, materials are not transparent unless specifically configured to " "be. The main reason behind this is that transparent materials are rendered " @@ -15382,36 +15456,36 @@ msgid "" "order)." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:43 +#: ../../docs/tutorials/3d/spatial_material.rst:46 msgid "" "This technique is less efficient (many state changes happen) and makes the " "materials unusable with many mid- and post-processing effects (such as SSAO, " "SSR, etc.) that require perfectly opaque geometry." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:47 +#: ../../docs/tutorials/3d/spatial_material.rst:50 msgid "" "For this reason, materials in Godot are assumed opaque unless specified " "otherwise. The main settings that enable transparency are:" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:50 +#: ../../docs/tutorials/3d/spatial_material.rst:53 msgid "Transparent flag (this one)" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:51 +#: ../../docs/tutorials/3d/spatial_material.rst:54 msgid "Blend mode set to other than \"Mix\"" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:52 +#: ../../docs/tutorials/3d/spatial_material.rst:55 msgid "Enabling distance or proximity fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:55 +#: ../../docs/tutorials/3d/spatial_material.rst:58 msgid "Use Shadow to Opacity" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:57 +#: ../../docs/tutorials/3d/spatial_material.rst:60 #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:75 msgid "" "Lighting modifies the alpha so shadowed areas are opaque and non-shadowed " @@ -15419,34 +15493,34 @@ msgid "" "AR." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:61 +#: ../../docs/tutorials/3d/spatial_material.rst:64 msgid "Unshaded" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:63 +#: ../../docs/tutorials/3d/spatial_material.rst:66 msgid "" "In most cases it is common for materials to be affected by lighting (shaded)." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:65 +#: ../../docs/tutorials/3d/spatial_material.rst:68 msgid "" "However, in some cases you might want to show just the albedo (color) and " "ignore the rest. Toggling this flag on will remove all shading and display " "pure, unlit color." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:72 +#: ../../docs/tutorials/3d/spatial_material.rst:75 msgid "Vertex Lighting" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:74 +#: ../../docs/tutorials/3d/spatial_material.rst:77 msgid "" "Godot has a more or less uniform cost per pixel thanks to depth pre-pass. " "All lighting calculations are made by running the lighting shader on every " "pixel." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:77 +#: ../../docs/tutorials/3d/spatial_material.rst:80 msgid "" "As these calculations are costly, performance can be brought down " "considerably in some corner cases such as drawing several layers of " @@ -15454,126 +15528,126 @@ msgid "" "lighting may help in these cases." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:82 +#: ../../docs/tutorials/3d/spatial_material.rst:85 msgid "" "Additionally, on low-end or mobile devices, switching to vertex lighting can " "considerably increase rendering performance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:87 +#: ../../docs/tutorials/3d/spatial_material.rst:90 msgid "" "Keep in mind that when vertex lighting is enabled, only directional lighting " "can produce shadows (for performance reasons)." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:91 +#: ../../docs/tutorials/3d/spatial_material.rst:94 msgid "No Depth Test" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:93 +#: ../../docs/tutorials/3d/spatial_material.rst:96 msgid "" "In order for close objects to appear over far away objects, depth testing is " "performed. Disabling it has the result of objects appearing over (or under) " "everything else." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:97 +#: ../../docs/tutorials/3d/spatial_material.rst:100 msgid "" "Disabling this makes the most sense for drawing indicators in world space, " "and works very well with the *Render Priority* property of Material (see the " "bottom of this page)." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:104 +#: ../../docs/tutorials/3d/spatial_material.rst:107 msgid "Use Point Size" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:106 +#: ../../docs/tutorials/3d/spatial_material.rst:109 msgid "" "This option is only effective when the geometry rendered is made of points " "(generally it's made of triangles when imported from 3D DCCs). If so, then " "those points can be resized (see below)." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:111 +#: ../../docs/tutorials/3d/spatial_material.rst:114 msgid "World Triplanar" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:113 +#: ../../docs/tutorials/3d/spatial_material.rst:116 msgid "" "When using triplanar mapping (see below, in the UV1 and UV2 settings), " "triplanar is computed in object local space. This option makes triplanar " "work in world space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:118 +#: ../../docs/tutorials/3d/spatial_material.rst:121 msgid "Fixed Size" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:120 +#: ../../docs/tutorials/3d/spatial_material.rst:123 msgid "" "This causes the object to be rendered at the same size no matter the " "distance. This is useful mostly for indicators (no depth test and high " "render priority) and some types of billboards." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:125 +#: ../../docs/tutorials/3d/spatial_material.rst:128 msgid "Do Not Receive Shadows" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:127 +#: ../../docs/tutorials/3d/spatial_material.rst:130 msgid "" "Makes the object not receive any kind of shadow that would otherwise be cast " "onto it." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:131 +#: ../../docs/tutorials/3d/spatial_material.rst:134 msgid "Disable Ambient Light" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:133 +#: ../../docs/tutorials/3d/spatial_material.rst:136 msgid "" "Makes the object not receive any kind of ambient lighting that would " "otherwise light it." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:137 +#: ../../docs/tutorials/3d/spatial_material.rst:140 msgid "Ensure Correct Normals" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:139 +#: ../../docs/tutorials/3d/spatial_material.rst:142 msgid "Fixes normals when non-uniform scaling is used." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:142 +#: ../../docs/tutorials/3d/spatial_material.rst:145 msgid "Vertex Color" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:144 +#: ../../docs/tutorials/3d/spatial_material.rst:147 msgid "" "This setting allows choosing what is done by default to vertex colors that " "come from your 3D modelling application. By default, they are ignored." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:150 +#: ../../docs/tutorials/3d/spatial_material.rst:153 msgid "Use as Albedo" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:152 +#: ../../docs/tutorials/3d/spatial_material.rst:155 msgid "Choosing this option means vertex color is used as albedo color." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:155 +#: ../../docs/tutorials/3d/spatial_material.rst:158 msgid "Is sRGB" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:157 +#: ../../docs/tutorials/3d/spatial_material.rst:160 msgid "" "Most 3D DCCs will likely export vertex colors as sRGB, so toggling this " "option on will help them look correct." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:161 +#: ../../docs/tutorials/3d/spatial_material.rst:164 #: ../../docs/tutorials/platform/ios/plugins_for_ios.rst:123 #: ../../docs/tutorials/platform/ios/plugins_for_ios.rst:163 #: ../../docs/tutorials/platform/ios/plugins_for_ios.rst:216 @@ -15584,46 +15658,46 @@ msgstr "" msgid "Parameters" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:163 +#: ../../docs/tutorials/3d/spatial_material.rst:166 msgid "" "``SpatialMaterial`` also has several configurable parameters to tweak many " "aspects of the rendering:" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:169 +#: ../../docs/tutorials/3d/spatial_material.rst:172 msgid "Diffuse Mode" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:171 +#: ../../docs/tutorials/3d/spatial_material.rst:174 msgid "" "Specifies the algorithm used by diffuse scattering of light when hitting the " "object. The default is *Burley*. Other modes are also available:" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:174 +#: ../../docs/tutorials/3d/spatial_material.rst:177 msgid "" "**Burley:** Default mode, the original Disney Principled PBS diffuse " "algorithm." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:175 +#: ../../docs/tutorials/3d/spatial_material.rst:178 msgid "**Lambert:** Is not affected by roughness." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:176 +#: ../../docs/tutorials/3d/spatial_material.rst:179 msgid "" "**Lambert Wrap:** Extends Lambert to cover more than 90 degrees when " "roughness increases. Works great for hair and simulating cheap subsurface " "scattering. This implementation is energy conserving." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:179 +#: ../../docs/tutorials/3d/spatial_material.rst:182 msgid "" "**Oren Nayar:** This implementation aims to take microsurfacing into account " "(via roughness). Works well for clay-like materials and some types of cloth." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:181 +#: ../../docs/tutorials/3d/spatial_material.rst:184 msgid "" "**Toon:** Provides a hard cut for lighting, with smoothing affected by " "roughness. It is recommended you disable sky contribution from your " @@ -15631,93 +15705,93 @@ msgid "" "material to achieve a better effect." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:189 +#: ../../docs/tutorials/3d/spatial_material.rst:192 msgid "Specular Mode" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:191 +#: ../../docs/tutorials/3d/spatial_material.rst:194 msgid "" "Specifies how the specular blob will be rendered. The specular blob " "represents the shape of a light source reflected in the object." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:194 +#: ../../docs/tutorials/3d/spatial_material.rst:197 msgid "**ShlickGGX:** The most common blob used by PBR 3D engines nowadays." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:195 +#: ../../docs/tutorials/3d/spatial_material.rst:198 msgid "" "**Blinn:** Common in previous-generation engines. Not worth using nowadays, " "but left here for the sake of compatibility." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:197 +#: ../../docs/tutorials/3d/spatial_material.rst:200 msgid "**Phong:** Same as above." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:198 +#: ../../docs/tutorials/3d/spatial_material.rst:201 msgid "" "**Toon:** Creates a toon blob, which changes size depending on roughness." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:199 +#: ../../docs/tutorials/3d/spatial_material.rst:202 msgid "**Disabled:** Sometimes the blob gets in the way. Begone!" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:204 +#: ../../docs/tutorials/3d/spatial_material.rst:207 msgid "Blend Mode" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:206 +#: ../../docs/tutorials/3d/spatial_material.rst:209 msgid "" "Controls the blend mode for the material. Keep in mind that any mode other " "than *Mix* forces the object to go through the transparent pipeline." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:209 +#: ../../docs/tutorials/3d/spatial_material.rst:212 msgid "" "**Mix:** Default blend mode, alpha controls how much the object is visible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:210 +#: ../../docs/tutorials/3d/spatial_material.rst:213 msgid "" "**Add:** Object is blended additively, nice for flares or some fire-like " "effects." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:212 +#: ../../docs/tutorials/3d/spatial_material.rst:215 msgid "**Sub:** Object is subtracted." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:213 +#: ../../docs/tutorials/3d/spatial_material.rst:216 msgid "**Mul:** Object is multiplied." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:218 +#: ../../docs/tutorials/3d/spatial_material.rst:221 msgid "Cull Mode" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:220 +#: ../../docs/tutorials/3d/spatial_material.rst:223 msgid "" "Determines which side of the object is not drawn when backfaces are rendered:" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:222 +#: ../../docs/tutorials/3d/spatial_material.rst:225 msgid "**Back:** The back of the object is culled when not visible (default)." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:223 +#: ../../docs/tutorials/3d/spatial_material.rst:226 msgid "**Front:** The front of the object is culled when not visible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:224 +#: ../../docs/tutorials/3d/spatial_material.rst:227 msgid "" "**Disabled:** Used for objects that are double-sided (no culling is " "performed)." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:228 -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:60 +#: ../../docs/tutorials/3d/spatial_material.rst:231 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:65 msgid "" "By default, Blender has backface culling disabled on materials and will " "export materials to match how they render in Blender. This means that " @@ -15727,143 +15801,143 @@ msgid "" "Blender's Materials tab, then export the scene to glTF again." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:236 +#: ../../docs/tutorials/3d/spatial_material.rst:239 msgid "Depth Draw Mode" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:238 +#: ../../docs/tutorials/3d/spatial_material.rst:241 msgid "Specifies when depth rendering must take place." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:240 +#: ../../docs/tutorials/3d/spatial_material.rst:243 msgid "**Opaque Only (default):** Depth is only drawn for opaque objects." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:241 +#: ../../docs/tutorials/3d/spatial_material.rst:244 msgid "" "**Always:** Depth draw is drawn for both opaque and transparent objects." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:242 +#: ../../docs/tutorials/3d/spatial_material.rst:245 msgid "" "**Never:** No depth draw takes place (do not confuse this with the No Depth " "Test option above)." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:244 +#: ../../docs/tutorials/3d/spatial_material.rst:247 msgid "" "**Depth Pre-Pass:** For transparent objects, an opaque pass is made first " "with the opaque parts, then transparency is drawn above. Use this option " "with transparent grass or tree foliage." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:251 +#: ../../docs/tutorials/3d/spatial_material.rst:254 msgid "Line Width" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:253 +#: ../../docs/tutorials/3d/spatial_material.rst:256 msgid "" "When drawing lines, specify the width of the lines being drawn. This option " "is not available on most modern hardware." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:257 +#: ../../docs/tutorials/3d/spatial_material.rst:260 msgid "Point Size" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:259 +#: ../../docs/tutorials/3d/spatial_material.rst:262 msgid "When drawing points, specify the point size in pixels." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:262 +#: ../../docs/tutorials/3d/spatial_material.rst:265 msgid "Billboard Mode" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:264 +#: ../../docs/tutorials/3d/spatial_material.rst:267 msgid "" "Enables billboard mode for drawing materials. This controls how the object " "faces the camera:" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:267 +#: ../../docs/tutorials/3d/spatial_material.rst:270 msgid "**Disabled:** Billboard mode is disabled." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:268 +#: ../../docs/tutorials/3d/spatial_material.rst:271 msgid "" "**Enabled:** Billboard mode is enabled, the object's -Z axis will always " "face the camera." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:270 +#: ../../docs/tutorials/3d/spatial_material.rst:273 msgid "" "**Y-Billboard:** The object's X axis will always be aligned with the camera." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:271 +#: ../../docs/tutorials/3d/spatial_material.rst:274 msgid "" "**Particles:** Most suited for particle systems, because it allows " "specifying animation options." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:276 +#: ../../docs/tutorials/3d/spatial_material.rst:279 msgid "The above options are only enabled for Particle Billboard." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:279 +#: ../../docs/tutorials/3d/spatial_material.rst:282 msgid "Billboard Keep Scale" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:281 +#: ../../docs/tutorials/3d/spatial_material.rst:284 msgid "Enables scaling a mesh in billboard mode." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:284 +#: ../../docs/tutorials/3d/spatial_material.rst:287 msgid "Grow" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:286 +#: ../../docs/tutorials/3d/spatial_material.rst:289 msgid "Grows the object vertices in the direction pointed by their normals:" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:290 +#: ../../docs/tutorials/3d/spatial_material.rst:293 msgid "" "This is commonly used to create cheap outlines. Add a second material pass, " "make it black and unshaded, reverse culling (Cull Front), and add some grow:" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:297 +#: ../../docs/tutorials/3d/spatial_material.rst:300 msgid "Use Alpha Scissor" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:299 +#: ../../docs/tutorials/3d/spatial_material.rst:302 msgid "" "When transparency other than ``0`` or ``1`` is not needed, it's possible to " "set a threshold to prevent the object from rendering semi-transparent pixels." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:304 +#: ../../docs/tutorials/3d/spatial_material.rst:307 msgid "" "This renders the object via the opaque pipeline, which is faster and allows " "it to use mid- and post-process effects such as SSAO, SSR, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:308 +#: ../../docs/tutorials/3d/spatial_material.rst:311 msgid "Material colors, maps and channels" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:310 +#: ../../docs/tutorials/3d/spatial_material.rst:313 msgid "" "Besides the parameters, what defines materials themselves are the colors, " "textures, and channels. Godot supports an extensive list of them. They are " "described in detail below:" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:315 +#: ../../docs/tutorials/3d/spatial_material.rst:318 msgid "Albedo" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:317 +#: ../../docs/tutorials/3d/spatial_material.rst:320 msgid "" "*Albedo* is the base color for the material, on which all the other settings " "operate. When set to *Unshaded*, this is the only color that is visible. In " @@ -15872,22 +15946,22 @@ msgid "" "color affects many more calculations than just the diffuse lighting path." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:323 +#: ../../docs/tutorials/3d/spatial_material.rst:326 msgid "Albedo color and texture can be used together as they are multiplied." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:325 +#: ../../docs/tutorials/3d/spatial_material.rst:328 msgid "" "*Alpha channel* in albedo color and texture is also used for the object " "transparency. If you use a color or texture with *alpha channel*, make sure " "to either enable transparency or *alpha scissoring* for it to work." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:330 +#: ../../docs/tutorials/3d/spatial_material.rst:333 msgid "Metallic" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:332 +#: ../../docs/tutorials/3d/spatial_material.rst:335 msgid "" "Godot uses a metallic model over competing models due to its simplicity. " "This parameter defines how reflective the material is. The more reflective, " @@ -15895,24 +15969,24 @@ msgid "" "reflected. This model is called \"energy-conserving\"." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:337 +#: ../../docs/tutorials/3d/spatial_material.rst:340 msgid "" "The *Specular* parameter is a general amount for the reflectivity (unlike " "*Metallic*, this is not energy-conserving, so leave it at ``0.5`` and don't " "touch it unless you need to)." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:341 +#: ../../docs/tutorials/3d/spatial_material.rst:344 msgid "" "The minimum internal reflectivity is ``0.04``, so it's impossible to make a " "material completely unreflective, just like in real life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:347 +#: ../../docs/tutorials/3d/spatial_material.rst:350 msgid "Roughness" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:349 +#: ../../docs/tutorials/3d/spatial_material.rst:352 msgid "" "*Roughness* affects the way reflection happens. A value of ``0`` makes it a " "perfect mirror while a value of ``1`` completely blurs the reflection " @@ -15920,11 +15994,11 @@ msgid "" "achieved with the right combination of *Metallic* and *Roughness*." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:360 msgid "Emission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:359 +#: ../../docs/tutorials/3d/spatial_material.rst:362 msgid "" "*Emission* specifies how much light is emitted by the material (keep in mind " "this does not include light surrounding geometry unless :ref:`doc_gi_probes` " @@ -15932,11 +16006,11 @@ msgid "" "affected by other lighting in the scene." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:367 +#: ../../docs/tutorials/3d/spatial_material.rst:370 msgid "Normal map" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:369 +#: ../../docs/tutorials/3d/spatial_material.rst:372 msgid "" "Normal mapping allows you to set a texture that represents finer shape " "detail. This does not modify geometry, only the incident angle for light. In " @@ -15944,7 +16018,7 @@ msgid "" "compression and wider compatibility." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:378 +#: ../../docs/tutorials/3d/spatial_material.rst:381 #: ../../docs/tutorials/assets_pipeline/importing_images.rst:125 msgid "" "Godot requires the normal map to use the X+, Y+ and Z+ coordinates, this is " @@ -15953,7 +16027,7 @@ msgid "" "to be converted so its Y axis is flipped." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:383 +#: ../../docs/tutorials/3d/spatial_material.rst:386 #: ../../docs/tutorials/assets_pipeline/importing_images.rst:130 msgid "" "More information about normal maps (including a coordinate order table for " @@ -15961,11 +16035,11 @@ msgid "" "Normal_Map_Technical_Details>`__." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:391 msgid "Rim" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:390 +#: ../../docs/tutorials/3d/spatial_material.rst:393 msgid "" "Some fabrics have small micro-fur that causes light to scatter around it. " "Godot emulates this with the *Rim* parameter. Unlike other rim lighting " @@ -15974,7 +16048,7 @@ msgid "" "considerably more believable." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:397 +#: ../../docs/tutorials/3d/spatial_material.rst:400 msgid "" "Rim size depends on roughness, and there is a special parameter to specify " "how it must be colored. If *Tint* is ``0``, the color of the light is used " @@ -15982,16 +16056,16 @@ msgid "" "Using intermediate values generally works best." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:403 +#: ../../docs/tutorials/3d/spatial_material.rst:406 #: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:64 msgid "Clearcoat" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:405 -#: ../../docs/tutorials/3d/spatial_material.rst:414 -#: ../../docs/tutorials/3d/spatial_material.rst:436 -#: ../../docs/tutorials/3d/spatial_material.rst:449 -#: ../../docs/tutorials/3d/spatial_material.rst:469 +#: ../../docs/tutorials/3d/spatial_material.rst:408 +#: ../../docs/tutorials/3d/spatial_material.rst:426 +#: ../../docs/tutorials/3d/spatial_material.rst:448 +#: ../../docs/tutorials/3d/spatial_material.rst:461 +#: ../../docs/tutorials/3d/spatial_material.rst:481 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:140 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 @@ -15999,19 +16073,31 @@ msgstr "" msgid "*This feature is only available when using the GLES3 backend.*" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:407 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:412 +#: ../../docs/tutorials/3d/spatial_material.rst:414 +msgid "" +"The effect is extremely subtle in Godot 3 releases, and may require specific " +"lighting or looking at a material a specific way to notice a difference. " +"This can be seen in the image below where clearcoat is turned on in the " +"right." +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:421 +msgid "The effect will be more noticeable in Godot 4." +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:424 #: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:63 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:416 +#: ../../docs/tutorials/3d/spatial_material.rst:428 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -16019,11 +16105,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:423 +#: ../../docs/tutorials/3d/spatial_material.rst:435 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:425 +#: ../../docs/tutorials/3d/spatial_material.rst:437 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -16033,11 +16119,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:434 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Depth" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:450 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -16046,34 +16132,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:447 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:463 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:458 +#: ../../docs/tutorials/3d/spatial_material.rst:470 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:460 +#: ../../docs/tutorials/3d/spatial_material.rst:472 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:467 +#: ../../docs/tutorials/3d/spatial_material.rst:479 #: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:61 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:471 +#: ../../docs/tutorials/3d/spatial_material.rst:483 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -16081,22 +16167,22 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:478 +#: ../../docs/tutorials/3d/spatial_material.rst:490 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:480 +#: ../../docs/tutorials/3d/spatial_material.rst:492 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:486 +#: ../../docs/tutorials/3d/spatial_material.rst:498 msgid "There are several settings that control how detail is used." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:488 +#: ../../docs/tutorials/3d/spatial_material.rst:500 msgid "" "Mask: The detail mask is a black and white image used to control where the " "blending takes place on a texture. White is for the detail textures, Black " @@ -16104,26 +16190,26 @@ msgid "" "partial blending of the material textures and detail textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:493 +#: ../../docs/tutorials/3d/spatial_material.rst:505 msgid "" "Blend Mode: These four modes control how the textures are blended together." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:495 +#: ../../docs/tutorials/3d/spatial_material.rst:507 msgid "" "Mix: Combines pixel values of both textures. At black, only show the " "material texture, at white, only show the detail texture. Values of gray " "create a smooth blend between the two." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:499 +#: ../../docs/tutorials/3d/spatial_material.rst:511 msgid "" "Add: Adds pixel values of one Texture with the other. Unlike mix mode both " "textures are completely mixed at white parts of a mask and not at gray " "parts. The original texture is mostly unchanged at black" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:503 +#: ../../docs/tutorials/3d/spatial_material.rst:515 msgid "" "Sub: Subtracts pixel values of one texture with the other. The second " "texture is completely subtracted at white parts of a mask with only a little " @@ -16131,41 +16217,41 @@ msgid "" "based on the exact texture." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:508 +#: ../../docs/tutorials/3d/spatial_material.rst:520 msgid "" "Mul: Multiplies the RGB channel numbers for each pixel from the top texture " "with the values for the corresponding pixel from the bottom texture." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:511 +#: ../../docs/tutorials/3d/spatial_material.rst:523 msgid "" "Albedo: This is where you put an albedo texture you want to blend. If " "nothing is in this slot it will be interpreted as white by default." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:514 +#: ../../docs/tutorials/3d/spatial_material.rst:526 msgid "" "Normal: This is where you put a normal texture you want to blend. If nothing " "is in this slot it will be interpreted as a flat normal map. This can still " "be used even if the material does not have normal map enabled." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:519 +#: ../../docs/tutorials/3d/spatial_material.rst:531 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:521 +#: ../../docs/tutorials/3d/spatial_material.rst:533 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:526 +#: ../../docs/tutorials/3d/spatial_material.rst:538 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:528 +#: ../../docs/tutorials/3d/spatial_material.rst:540 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -16173,17 +16259,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:533 +#: ../../docs/tutorials/3d/spatial_material.rst:545 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:539 +#: ../../docs/tutorials/3d/spatial_material.rst:551 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:541 +#: ../../docs/tutorials/3d/spatial_material.rst:553 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -16192,17 +16278,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:547 +#: ../../docs/tutorials/3d/spatial_material.rst:559 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:553 +#: ../../docs/tutorials/3d/spatial_material.rst:565 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:555 +#: ../../docs/tutorials/3d/spatial_material.rst:567 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -17613,7 +17699,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/baked_lightmaps.rst:342 -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:571 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:576 #: ../../docs/tutorials/scripting/visual_script/nodes_purposes.rst:228 msgid "Data" msgstr "" @@ -18614,7 +18700,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/using_gridmaps.rst:60 -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:194 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:199 #: ../../docs/tutorials/assets_pipeline/escn_exporter/material.rst:2 msgid "Materials" msgstr "" @@ -18626,70 +18712,110 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/using_gridmaps.rst:66 -msgid "Exporting the MeshLibrary" +msgid "NavigationMeshes" msgstr "" #: ../../docs/tutorials/3d/using_gridmaps.rst:68 msgid "" +"Like all mesh instances, MeshLibrary items can be assigned a :ref:" +"`class_NavigationMesh` resource, which can be created manually, or baked as " +"described below." +msgstr "" + +#: ../../docs/tutorials/3d/using_gridmaps.rst:71 +msgid "" +"To create the NavigationMesh from a MeshLibrary scene export, place a :ref:" +"`class_NavigationMeshInstance` child node below the main MeshInstance for " +"the GridMap item. Add a valid NavigationMesh resource to the " +"NavigationMeshInstance and some source geometry nodes below and bake the " +"NavigationMesh." +msgstr "" + +#: ../../docs/tutorials/3d/using_gridmaps.rst:78 +msgid "" +"With small grid cells it is often necessary to reduce the NavigationMesh " +"properties for agent radius and region minimum size." +msgstr "" + +#: ../../docs/tutorials/3d/using_gridmaps.rst:83 +msgid "" +"Nodes below the NavigationMeshInstance are ignored for the MeshLibrary scene " +"export, so additional nodes can be added as source geometry just for baking " +"the navmesh." +msgstr "" + +#: ../../docs/tutorials/3d/using_gridmaps.rst:88 +msgid "" +"The baked cell size of the NavigationMesh must match the NavigationServer " +"map cell size to properly merge the navigation meshes of different grid " +"cells." +msgstr "" + +#: ../../docs/tutorials/3d/using_gridmaps.rst:92 +msgid "Exporting the MeshLibrary" +msgstr "" + +#: ../../docs/tutorials/3d/using_gridmaps.rst:94 +msgid "" "To export the library, click on Scene -> Convert To.. -> MeshLibrary.., and " "save it as a resource." msgstr "" -#: ../../docs/tutorials/3d/using_gridmaps.rst:73 +#: ../../docs/tutorials/3d/using_gridmaps.rst:99 msgid "" "You can find an already exported MeshLibrary in the project named " "\"MeshLibrary.tres\"." msgstr "" -#: ../../docs/tutorials/3d/using_gridmaps.rst:76 +#: ../../docs/tutorials/3d/using_gridmaps.rst:102 msgid "Using GridMap" msgstr "" -#: ../../docs/tutorials/3d/using_gridmaps.rst:78 +#: ../../docs/tutorials/3d/using_gridmaps.rst:104 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 \"Theme\" " "property in the Inspector." msgstr "" -#: ../../docs/tutorials/3d/using_gridmaps.rst:84 +#: ../../docs/tutorials/3d/using_gridmaps.rst:110 msgid "" "The \"Cell/Size\" property should be set to the size of your meshes. You can " "leave it at the default value for the demo. Set the \"Center Y\" property to " "\"Off\"." msgstr "" -#: ../../docs/tutorials/3d/using_gridmaps.rst:87 +#: ../../docs/tutorials/3d/using_gridmaps.rst:113 msgid "" "Now you can start designing the level by choosing a tile from the palette " "and placing it with Left-Click in the editor window. To remove a tile, hold :" "kbd:`Shift` and use Right-click." msgstr "" -#: ../../docs/tutorials/3d/using_gridmaps.rst:91 +#: ../../docs/tutorials/3d/using_gridmaps.rst:117 msgid "" "Click on the \"GridMap\" menu to see options and shortcuts. For example, " "pressing :kbd:`S` rotates a tile around the y-axis." msgstr "" -#: ../../docs/tutorials/3d/using_gridmaps.rst:96 +#: ../../docs/tutorials/3d/using_gridmaps.rst:122 msgid "" "Holding :kbd:`Shift` and dragging with the left mouse button will draw a " "selection box. You can duplicate or clear the selected area using the " "respective menu options." msgstr "" -#: ../../docs/tutorials/3d/using_gridmaps.rst:102 +#: ../../docs/tutorials/3d/using_gridmaps.rst:128 msgid "" "In the menu, you can also change the axis you're drawing on, as well as " "shift the drawing plane higher or lower on its axis." msgstr "" -#: ../../docs/tutorials/3d/using_gridmaps.rst:108 +#: ../../docs/tutorials/3d/using_gridmaps.rst:134 msgid "Using GridMap in code" msgstr "" -#: ../../docs/tutorials/3d/using_gridmaps.rst:110 +#: ../../docs/tutorials/3d/using_gridmaps.rst:136 msgid "" "See :ref:`class_GridMap` for details on the node's methods and member " "variables." @@ -19335,12 +19461,12 @@ msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/index.rst:38 msgid "" "If you are going to draw the same object many times, it can be helpful to " -"use a MultiMesh with a MultiMeshInstance. The MultiMeshInstance draws meshes " -"thousands of times very cheaply. It takes advantage of hardware instancing " -"in order to do so. The drawback with using a MultiMeshInstance is that you " -"are limited to one material for all instances. It uses an instance array to " -"store different colors and transformations for each instance, but all the " -"instances use the same material." +"use a MultiMesh with a MultiMeshInstance. MultiMeshInstances draw meshes " +"thousands of times very cheaply by taking advantage of hardware instancing. " +"The drawback with using a MultiMeshInstance is that each of your mesh's " +"surfaces are limited to one material for all instances. It uses an instance " +"array to store different colors and transformations for each instance, but " +"all the instances of each surface use the same material." msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/index.rst:46 @@ -19364,8 +19490,9 @@ msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/index.rst:56 msgid "" "Each surface has its own material. Alternatively, you can override the " -"material for all surfaces in the Mesh when you use a MeshInstance using " -"``MeshInstance.override_material``." +"material for all surfaces in the Mesh when you use a MeshInstance using the :" +"ref:`material_override ` " +"property." msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/index.rst:60 @@ -19377,10 +19504,11 @@ msgid "" "The surface array is an array of length ``ArrayMesh.ARRAY_MAX``. Each " "position in the array is filled with a sub-array containing per-vertex " "information. For example, the array located at ``ArrayMesh.ARRAY_NORMAL`` is " -"a :ref:`PoolVector3Array ` of vertex normals." +"a :ref:`PoolVector3Array ` of vertex normals. See :" +"ref:`Mesh.ArrayType ` for more information." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:66 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:67 msgid "" "The surface array can be indexed or non-indexed. Creating a non-indexed " "array is as easy as not assigning an array at the index ``ArrayMesh." @@ -19394,114 +19522,115 @@ msgid "" "want per-face normals)." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:77 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:78 msgid "" "Godot provides different ways of accessing and working with geometry. More " "information on each will be provided in the following tutorials." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:81 -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:48 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:82 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:79 #: ../../docs/development/file_formats/tscn.rst:327 msgid "ArrayMesh" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:83 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:84 msgid "" "The ArrayMesh resource extends Mesh to add a few different quality of life " -"functions, and most importantly, the ability to construct a Mesh surface " +"functions and, most importantly, the ability to construct a Mesh surface " "through scripting." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:86 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:87 msgid "" "For more information about the ArrayMesh, please see the :ref:`ArrayMesh " "tutorial `." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:89 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:90 msgid "MeshDataTool" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:91 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:92 msgid "" "The MeshDataTool is a resource that converts Mesh data into arrays of " "vertices, faces, and edges that can be modified at runtime." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:94 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:95 msgid "" "For more information about the MeshDataTool, please see the :ref:" "`MeshDataTool tutorial `." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:97 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:98 msgid "SurfaceTool" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:99 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:100 msgid "" "The SurfaceTool allows the creation of Meshes using an OpenGL 1.x immediate " "mode style interface." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:101 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:102 msgid "" "For more information about the SurfaceTool, please see the :ref:`SurfaceTool " "tutorial `." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:104 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:105 msgid "ImmediateGeometry" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:106 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:107 msgid "" "ImmediateGeometry is a node that uses an immediate mode style interface " "(like SurfaceTool) to draw objects. The difference between ImmediateGeometry " "and the SurfaceTool is that ImmediateGeometry is a node itself that can be " -"added to the scene tree and is drawn directly from the code. The SurfaceTool " -"generates a Mesh that needs to be added a MeshInstance to be seen." +"added to the scene tree and is drawn directly from the code, while the " +"SurfaceTool generates a Mesh that needs to be added to a MeshInstance to be " +"seen." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:111 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:112 msgid "" -"ImmediateGeometry is useful for prototyping because of the straightforward " +"ImmediateGeometry is useful for prototyping because of its straightforward " "API, but it is slow because the geometry is rebuilt every frame. It is most " -"useful for quickly adding simple geometry to debug visually (e.g. by drawing " +"useful for adding simple geometry for visual debugging (e.g. by drawing " "lines to visualize physics raycasts etc.)." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:115 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:116 msgid "" "For more information about ImmediateGeometry, please see the :ref:" "`ImmediateGeometry tutorial `." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:118 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:119 msgid "Which one should I use?" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:120 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:121 msgid "" -"Which method you use depends on what you are trying to do and what kind of " +"Which approach you use depends on what you are trying to do and what kind of " "procedure you are comfortable with." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:122 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:123 msgid "" "Both SurfaceTool and ArrayMesh are excellent for generating static geometry " "(meshes) that don't change over time." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:124 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:125 msgid "" "Using an ArrayMesh is slightly faster than using a SurfaceTool, but the API " "is a little more challenging. Additionally, SurfaceTool has a few quality of " "life methods such as ``generate_normals()`` and ``index()``." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:127 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:128 msgid "" "ImmediateGeometry regenerates the mesh every frame, so it is much slower " "than ArrayMesh or SurfaceTool. However, if you need the geometry to change " @@ -19509,13 +19638,13 @@ msgid "" "little faster than generating an ArrayMesh every frame." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/index.rst:131 +#: ../../docs/tutorials/3d/procedural_geometry/index.rst:132 msgid "" "The MeshDataTool is not fast, but it gives you access to all kinds of " "properties of the mesh that you don't get with the others (edges, faces, " "etc.). It is incredibly useful when you need that sort of data to transform " -"the mesh, but it is not a good idea to use it if that information is not " -"needed. The MeshDataTool is best used if you are going to be using an " +"the mesh, but it is not a good idea to use it if that extra information is " +"not needed. The MeshDataTool is best used if you are going to be using an " "algorithm that requires access to the face or edge array." msgstr "" @@ -19526,7 +19655,7 @@ msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:6 msgid "" "This tutorial will present the basics of using an :ref:`ArrayMesh " -"`" +"`." msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:8 @@ -19538,157 +19667,354 @@ msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:11 msgid "" -"The first is the ``PrimitiveType``, this is an OpenGL concept that instructs " -"the GPU how to arrange the primitive based on the vertices given whether it " -"is triangles, lines, points, etc. A complete list can be found under the :" -"ref:`Mesh ` class reference page." +"The first parameter is the ``PrimitiveType``, an OpenGL concept that " +"instructs the GPU how to arrange the primitive based on the vertices given, " +"i.e. whether they represent triangles, lines, points, etc. See :ref:`Mesh." +"PrimitiveType ` for the options available." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:16 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:15 msgid "" -"The second is the actual Array that stores the mesh information. The array " -"is a normal Godot array that is constructed with empty brackets ``[]``. It " -"stores a ``Pool**Array`` (e.g. PoolVector3Array, PoolIntArray, etc.) for " -"each type of information." +"The second parameter, ``arrays``, is the actual Array that stores the mesh " +"information. The array is a normal Godot array that is constructed with " +"empty brackets ``[]``. It stores a ``Pool**Array`` (e.g. PoolVector3Array, " +"PoolIntArray, etc.) for each type of information that will be used to build " +"the surface." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:20 -msgid "``ARRAY_VERTEX`` = 0 | PoolVector3Array or PoolVector2Array" -msgstr "" - -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:21 -msgid "``ARRAY_NORMAL`` = 1 | PoolVector3Array" -msgstr "" - -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:22 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:19 msgid "" -"``ARRAY_TANGENT`` = 2 | PoolRealArray of groups of 4 floats. First 3 floats " -"determine the tangent, and the last the binormal direction as -1 or 1." +"The possible elements of ``arrays`` are listed below, together with the " +"position they must have within ``arrays``. See also :ref:`Mesh.ArrayType " +"`." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:24 -msgid "``ARRAY_COLOR`` = 3 | PoolColorArray" +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:29 +#: ../../docs/tutorials/scripting/visual_script/nodes_purposes.rst:464 +msgid "Index" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:25 -msgid "``ARRAY_TEX_UV`` = 4 | PoolVector2Array or PoolVector3Array" +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:30 +msgid "Mesh.ArrayType Enum" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:26 -msgid "``ARRAY_TEX_UV2`` = 5 | PoolVector2Array or PoolVector3Array" +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:31 +msgid "Array type" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:27 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:33 +#: ../../docs/tutorials/io/binary_serialization_api.rst:31 +msgid "0" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:34 +msgid "``ARRAY_VERTEX``" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:35 msgid "" -"``ARRAY_BONES`` = 6 | PoolRealArray of groups of 4 floats or PoolIntArray of " -"groups of 4 ints. Each group lists indexes of 4 bones that affects a given " -"vertex." +":ref:`PoolVector3Array ` or :ref:`PoolVector2Array " +"`" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:28 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:37 +#: ../../docs/tutorials/io/binary_serialization_api.rst:33 +#: ../../docs/tutorials/io/binary_serialization_api.rst:419 +#: ../../docs/tutorials/platform/mobile_rendering_limitations.rst:49 +msgid "1" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:38 +msgid "``ARRAY_NORMAL``" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:39 +msgid ":ref:`PoolVector3Array `" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:41 +#: ../../docs/tutorials/io/binary_serialization_api.rst:35 +#: ../../docs/tutorials/platform/mobile_rendering_limitations.rst:49 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:306 +msgid "2" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:42 +msgid "``ARRAY_TANGENT``" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:43 msgid "" -"``ARRAY_WEIGHTS`` = 7 | PoolRealArray of groups of 4 floats. Each float " +":ref:`PoolRealArray ` of groups of 4 floats. First 3 " +"floats determine the tangent, and the last the binormal direction as -1 or 1." +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:46 +#: ../../docs/tutorials/io/binary_serialization_api.rst:37 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:308 +msgid "3" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:47 +msgid "``ARRAY_COLOR``" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:48 +msgid ":ref:`PoolColorArray `" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:50 +#: ../../docs/tutorials/io/binary_serialization_api.rst:39 +#: ../../docs/tutorials/io/binary_serialization_api.rst:104 +#: ../../docs/tutorials/io/binary_serialization_api.rst:115 +#: ../../docs/tutorials/io/binary_serialization_api.rst:124 +#: ../../docs/tutorials/io/binary_serialization_api.rst:135 +#: ../../docs/tutorials/io/binary_serialization_api.rst:144 +#: ../../docs/tutorials/io/binary_serialization_api.rst:153 +#: ../../docs/tutorials/io/binary_serialization_api.rst:166 +#: ../../docs/tutorials/io/binary_serialization_api.rst:168 +#: ../../docs/tutorials/io/binary_serialization_api.rst:177 +#: ../../docs/tutorials/io/binary_serialization_api.rst:179 +#: ../../docs/tutorials/io/binary_serialization_api.rst:181 +#: ../../docs/tutorials/io/binary_serialization_api.rst:183 +#: ../../docs/tutorials/io/binary_serialization_api.rst:192 +#: ../../docs/tutorials/io/binary_serialization_api.rst:194 +#: ../../docs/tutorials/io/binary_serialization_api.rst:196 +#: ../../docs/tutorials/io/binary_serialization_api.rst:205 +#: ../../docs/tutorials/io/binary_serialization_api.rst:207 +#: ../../docs/tutorials/io/binary_serialization_api.rst:209 +#: ../../docs/tutorials/io/binary_serialization_api.rst:211 +#: ../../docs/tutorials/io/binary_serialization_api.rst:213 +#: ../../docs/tutorials/io/binary_serialization_api.rst:215 +#: ../../docs/tutorials/io/binary_serialization_api.rst:224 +#: ../../docs/tutorials/io/binary_serialization_api.rst:226 +#: ../../docs/tutorials/io/binary_serialization_api.rst:228 +#: ../../docs/tutorials/io/binary_serialization_api.rst:230 +#: ../../docs/tutorials/io/binary_serialization_api.rst:239 +#: ../../docs/tutorials/io/binary_serialization_api.rst:241 +#: ../../docs/tutorials/io/binary_serialization_api.rst:243 +#: ../../docs/tutorials/io/binary_serialization_api.rst:245 +#: ../../docs/tutorials/io/binary_serialization_api.rst:254 +#: ../../docs/tutorials/io/binary_serialization_api.rst:256 +#: ../../docs/tutorials/io/binary_serialization_api.rst:258 +#: ../../docs/tutorials/io/binary_serialization_api.rst:260 +#: ../../docs/tutorials/io/binary_serialization_api.rst:262 +#: ../../docs/tutorials/io/binary_serialization_api.rst:264 +#: ../../docs/tutorials/io/binary_serialization_api.rst:273 +#: ../../docs/tutorials/io/binary_serialization_api.rst:275 +#: ../../docs/tutorials/io/binary_serialization_api.rst:277 +#: ../../docs/tutorials/io/binary_serialization_api.rst:279 +#: ../../docs/tutorials/io/binary_serialization_api.rst:281 +#: ../../docs/tutorials/io/binary_serialization_api.rst:283 +#: ../../docs/tutorials/io/binary_serialization_api.rst:285 +#: ../../docs/tutorials/io/binary_serialization_api.rst:287 +#: ../../docs/tutorials/io/binary_serialization_api.rst:289 +#: ../../docs/tutorials/io/binary_serialization_api.rst:298 +#: ../../docs/tutorials/io/binary_serialization_api.rst:300 +#: ../../docs/tutorials/io/binary_serialization_api.rst:302 +#: ../../docs/tutorials/io/binary_serialization_api.rst:304 +#: ../../docs/tutorials/io/binary_serialization_api.rst:306 +#: ../../docs/tutorials/io/binary_serialization_api.rst:308 +#: ../../docs/tutorials/io/binary_serialization_api.rst:310 +#: ../../docs/tutorials/io/binary_serialization_api.rst:312 +#: ../../docs/tutorials/io/binary_serialization_api.rst:314 +#: ../../docs/tutorials/io/binary_serialization_api.rst:316 +#: ../../docs/tutorials/io/binary_serialization_api.rst:318 +#: ../../docs/tutorials/io/binary_serialization_api.rst:320 +#: ../../docs/tutorials/io/binary_serialization_api.rst:329 +#: ../../docs/tutorials/io/binary_serialization_api.rst:331 +#: ../../docs/tutorials/io/binary_serialization_api.rst:333 +#: ../../docs/tutorials/io/binary_serialization_api.rst:335 +#: ../../docs/tutorials/io/binary_serialization_api.rst:344 +#: ../../docs/tutorials/io/binary_serialization_api.rst:364 +#: ../../docs/tutorials/io/binary_serialization_api.rst:366 +#: ../../docs/tutorials/io/binary_serialization_api.rst:374 +#: ../../docs/tutorials/io/binary_serialization_api.rst:393 +#: ../../docs/tutorials/io/binary_serialization_api.rst:405 +#: ../../docs/tutorials/io/binary_serialization_api.rst:417 +#: ../../docs/tutorials/io/binary_serialization_api.rst:430 +#: ../../docs/tutorials/io/binary_serialization_api.rst:432 +#: ../../docs/tutorials/io/binary_serialization_api.rst:441 +#: ../../docs/tutorials/io/binary_serialization_api.rst:443 +#: ../../docs/tutorials/io/binary_serialization_api.rst:452 +#: ../../docs/tutorials/io/binary_serialization_api.rst:460 +#: ../../docs/tutorials/io/binary_serialization_api.rst:473 +#: ../../docs/tutorials/io/binary_serialization_api.rst:475 +#: ../../docs/tutorials/io/binary_serialization_api.rst:477 +#: ../../docs/tutorials/io/binary_serialization_api.rst:486 +#: ../../docs/tutorials/io/binary_serialization_api.rst:488 +#: ../../docs/tutorials/io/binary_serialization_api.rst:490 +#: ../../docs/tutorials/io/binary_serialization_api.rst:492 +#: ../../docs/tutorials/io/binary_serialization_api.rst:501 +#: ../../docs/tutorials/io/binary_serialization_api.rst:503 +#: ../../docs/tutorials/io/binary_serialization_api.rst:505 +#: ../../docs/tutorials/io/binary_serialization_api.rst:507 +#: ../../docs/tutorials/io/binary_serialization_api.rst:509 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:310 +msgid "4" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:51 +msgid "``ARRAY_TEX_UV``" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:52 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:56 +msgid "" +":ref:`PoolVector2Array ` or :ref:`PoolVector3Array " +"`" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:54 +#: ../../docs/tutorials/io/binary_serialization_api.rst:41 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:312 +msgid "5" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:55 +msgid "``ARRAY_TEX_UV2``" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:58 +#: ../../docs/tutorials/io/binary_serialization_api.rst:43 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:314 +msgid "6" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:59 +msgid "``ARRAY_BONES``" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:60 +msgid "" +":ref:`PoolRealArray ` of groups of 4 floats or :ref:" +"`PoolIntArray ` of groups of 4 ints. Each group lists " +"indexes of 4 bones that affects a given vertex." +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:62 +#: ../../docs/tutorials/io/binary_serialization_api.rst:45 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:316 +msgid "7" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:63 +msgid "``ARRAY_WEIGHTS``" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:64 +msgid "" +":ref:`PoolRealArray ` of groups of 4 floats. Each float " "lists the amount of weight an determined bone on ``ARRAY_BONES`` has on a " "given vertex." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:29 -msgid "``ARRAY_INDEX`` = 8 | PoolIntArray" +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:66 +#: ../../docs/tutorials/io/binary_serialization_api.rst:47 +#: ../../docs/tutorials/io/binary_serialization_api.rst:124 +#: ../../docs/tutorials/io/binary_serialization_api.rst:144 +#: ../../docs/tutorials/io/binary_serialization_api.rst:155 +#: ../../docs/tutorials/io/binary_serialization_api.rst:168 +#: ../../docs/tutorials/io/binary_serialization_api.rst:179 +#: ../../docs/tutorials/io/binary_serialization_api.rst:194 +#: ../../docs/tutorials/io/binary_serialization_api.rst:207 +#: ../../docs/tutorials/io/binary_serialization_api.rst:226 +#: ../../docs/tutorials/io/binary_serialization_api.rst:241 +#: ../../docs/tutorials/io/binary_serialization_api.rst:256 +#: ../../docs/tutorials/io/binary_serialization_api.rst:275 +#: ../../docs/tutorials/io/binary_serialization_api.rst:300 +#: ../../docs/tutorials/io/binary_serialization_api.rst:331 +#: ../../docs/tutorials/io/binary_serialization_api.rst:353 +#: ../../docs/tutorials/io/binary_serialization_api.rst:366 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:318 +msgid "8" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:31 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:67 +msgid "``ARRAY_INDEX``" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:68 +msgid ":ref:`PoolIntArray `" +msgstr "" + +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:70 msgid "" -"The Array of vertices is always required. All the others are optional and " -"will only be used if included." +"The array of vertices (at index 0) is always required. The index array is " +"optional and will only be used if included. We won't use it in this tutorial." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:33 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:72 msgid "" -"Each array needs to have the same number of elements as the vertex array " -"except for the index array. For arrays like tangents, an element is a group " -"of 4 floats. So the array size will be four times the size of the vertex " -"array size, but they will have the same number of elements" +"All the other arrays carry information about the vertices. They are also " +"optional and will only be used if included. Some of these arrays (e.g. " +"``ARRAY_COLOR``) use one entry per vertex to provide extra information about " +"vertices. They must have the same size as the vertex array. Other arrays (e." +"g. ``ARRAY_TANGENT``) use four entries to describe a single vertex. These " +"must be exactly four times larger than the vertex array." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:37 -msgid "The index array is unique." -msgstr "" - -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:39 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:76 msgid "" -"The third parameter is an array of blendshapes for the Mesh to use. While " -"this tutorial does not cover using blendshapes, it is possible to specify " -"them when creating a surface from arrays." +"For normal usage, the last two parameters in :ref:`add_surface_from_arrays() " +"` are typically left empty." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:42 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:81 msgid "" -"The last parameter is the compress flags which specifies which arrays to " -"store with half as many bits. The values can be found in the classref for :" -"ref:`VisualServer ` under :ref:`ArrayFormat " -"`." +"In the editor, create a :ref:`MeshInstance ` and add an :" +"ref:`ArrayMesh ` to it in the Inspector. Normally, adding " +"an ArrayMesh in the editor is not useful, but in this case it allows us to " +"access the ArrayMesh from code without creating one." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:45 -msgid "" -"For normal usage you will find it is best to leave the last two parameters " -"empty." -msgstr "" - -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:50 -msgid "" -"Add an :ref:`ArrayMesh ` to a MeshInstance. Normally, " -"adding an ArrayMesh in the editor is not useful, but in this case it allows " -"as to access the ArrayMesh from code without creating one." -msgstr "" - -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:54 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:85 msgid "Next, add a script to the MeshInstance." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:56 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:87 msgid "Under ``_ready()``, create a new Array." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:63 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:94 msgid "" -"This will be the array that we keep our surface information in, it will hold " -"all the arrays of data that the surface needs. Godot will expect it to be of " -"size ``Mesh.ARRAY_MAX``, so resize it accordingly." +"This will be the array that we keep our surface information in - it will " +"hold all the arrays of data that the surface needs. Godot will expect it to " +"be of size ``Mesh.ARRAY_MAX``, so resize it accordingly." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:73 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:104 msgid "Next create the arrays for each data type you will use." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:83 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:114 msgid "" "Once you have filled your data arrays with your geometry you can create a " "mesh by adding each array to ``surface_array`` and then committing to the " "mesh." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:96 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:127 msgid "" "In this example, we used ``Mesh.PRIMITIVE_TRIANGLES``, but you can use any " "primitive type available from mesh." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:99 -msgid "Put together the full code looks like:" +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:130 +msgid "Put together, the full code looks like:" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:130 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:161 msgid "" "The code that goes in the middle can be whatever you want. Below we will " -"present some example code that could go in the middle." +"present some example code for generating a sphere." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:134 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:165 msgid "Generating geometry" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:136 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:167 msgid "" "Here is sample code for generating a sphere. Although the code is presented " "in GDScript, there is nothing Godot specific about the approach to " @@ -19698,26 +20024,15 @@ msgid "" "geometry in general, you can use any tutorial that you find online." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:203 -msgid "Combined with the code above, this code will generate a sphere." -msgstr "" - -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:205 -msgid "" -"When it comes to generating geometry with the ArrayMesh you need to " -"understand what goes in each array and then you can follow tutorials for any " -"language/engine and convert it into Godot." -msgstr "" - -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:209 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:235 msgid "Saving" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:211 +#: ../../docs/tutorials/3d/procedural_geometry/arraymesh.rst:237 msgid "" -"Finally, Godot provides a single method to save ArrayMeshes using the :ref:" -"`ResourceSaver ` class. This is useful when you want to " -"generate a mesh and then use it later without having to re-generate." +"Finally, we can use the :ref:`ResourceSaver ` class to " +"save the ArrayMesh. This is useful when you want to generate a mesh and then " +"use it later without having to re-generate it." msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:4 @@ -19749,68 +20064,73 @@ msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:16 msgid "" -"As an example, let's walk through the process of deforming the mesh " -"generated in the :ref:`ArrayMesh tutorial `." +"We initialize the MeshDataTool from an ArrayMesh by calling " +"``create_from_surface()``. If there is already data initialized in the " +"MeshDataTool, calling ``create_from_surface()`` will clear it for you. " +"Alternatively, you can call ``clear()`` yourself before re-using the " +"MeshDataTool." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:18 +#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:19 msgid "" -"Assume the mesh is stored in an ArrayMesh named ``mesh``. We then initialize " -"the MeshDataTool from ``mesh`` by calling ``create_from_surface()``. If " -"there is already data initialized in the MeshDataTool calling " -"``create_from_surface()`` will clear it for you. Alternatively, you can call " -"``clear()`` yourself before re-using the MeshDataTool" +"In the examples below, assume an ArrayMesh called ``mesh`` has already been " +"created. See :ref:`ArrayMesh tutorial ` for an example of " +"mesh generation." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:29 +#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:27 msgid "" "``create_from_surface()`` uses the vertex arrays from the ArrayMesh to " -"calculate two additional arrays, one for edges and one for faces." +"calculate two additional arrays, one for edges and one for faces, for a " +"total of three arrays." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:32 +#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:30 msgid "" "An edge is a connection between any two vertices. Each edge in the edge " "array contains a reference to the two vertices it is composed of, and up to " "two faces that it is contained within." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:35 +#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:33 msgid "" "A face is a triangle made up of three vertices and three corresponding " "edges. Each face in the face array contains a reference to the three " "vertices and three edges it is composed of." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:38 +#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:36 msgid "" -"The vertex array contains edges, faces, normals, color, tangent, uv, uv2, " -"bones, and weight information connected with each vertex." +"The vertex array contains edge, face, normal, color, tangent, uv, uv2, bone, " +"and weight information connected with each vertex." msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:41 +#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:39 msgid "" "To access information from these arrays you use a function of the form " "``get_****()``:" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:51 +#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:49 msgid "" "What you choose to do with these functions is up to you. A common use case " "is to iterate over all vertices and transform them in some way:" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:62 +#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:60 msgid "" -"Finally, ``commit_to_surface()`` adds a new surface to the ArrayMesh. So if " -"you are dynamically updating an existing ArrayMesh, first delete the " -"existing surface before adding a new one." +"These modifications are not done in place on the ArrayMesh. If you are " +"dynamically updating an existing ArrayMesh, first delete the existing " +"surface before adding a new one using :ref:`commit_to_surface() " +"`:" msgstr "" -#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:71 +#: ../../docs/tutorials/3d/procedural_geometry/meshdatatool.rst:69 msgid "" -"Below is a complete example that creates a pulsing blob complete with new " -"normals and vertex colors." +"Below is a complete example that turns a spherical mesh called ``mesh`` into " +"a randomly deformed blob complete with updated normals and vertex colors. " +"See :ref:`ArrayMesh tutorial ` for how to generate the base " +"mesh." msgstr "" #: ../../docs/tutorials/3d/procedural_geometry/surfacetool.rst:4 @@ -19975,7 +20295,8 @@ msgid "" "axis aligned bounding box (``AABB``) of the occludee against the occluder. " "The AABB must be *fully occluded* to be culled. The consequence of this is " "that smaller objects are more likely to be effectively culled than larger " -"objects." +"objects, and larger occluders tend to be much more effective than smaller " +"ones." msgstr "" #: ../../docs/tutorials/3d/occluders.rst:12 @@ -20087,6 +20408,227 @@ msgid "" "spacecraft, planets etc." msgstr "" +#: ../../docs/tutorials/3d/occluders.rst:46 +msgid "OccluderShapePolygon" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:48 +msgid "" +"The polygon is a generalist occluder. It can be made to work well in almost " +"all situations, and can quickly provide a degree of occlusion culling to " +"most scenes." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:50 +msgid "" +"As with all geometric occluders, the key to success is to make them large. " +"They do not have to match rendered geometry, and in many cases they will " +"work better if you extend them past rendered geometry to make them as big as " +"possible (without blocking legitimate lines of sight). The reason why they " +"need to be large is that in general, they will only cull objects whose " +"``AABB`` is completely hidden by the polygon. For large objects to be " +"culled, you will need large occluders." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:52 +msgid "" +"Like all occluders, polygons **can** overlap, and in many cases they will " +"work better if you overlap them (they are more likely to cull objects on " +"boundaries)." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:55 +msgid "Editing and details" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:57 +msgid "" +"Occluder polygons are edited as a list of points which define a *convex* " +"polygon, on a single plane. In order to confine the polygon to a single " +"plane, the points are defined in 2D space rather than 3D. The orientation, " +"position and scale of the polygon is taken instead from the transform of the " +"``Occluder`` Node." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:61 +msgid "" +"If you create an Occluder and add to it a ``OccluderShapePolygon`` resource, " +"by default it will create 4 starting points forming a rectangle. If you move " +"the position and rotation of the Occluder Node you will see how the " +"rectangle follows the node. When the Occluder is selected in the editor, " +"handles will appear for each of the points. You can actually click and drag " +"these handles, to match your polygon to the environment of your scene." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:65 +msgid "" +"You are not restricted to 4 points, you can add and remove points in the " +"Inspector, but note that:" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:67 +msgid "" +"The editor will automatically sanitize your points to form a convex polygon. " +"If you drag a point into a position that would form a concave polygon, it " +"will be ignored." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:68 +msgid "" +"In general, the less edges (and thus points), the faster the polygon will " +"work at runtime. A polygon with 6 edges will have to make twice the " +"calculations of a polygon with 3 edges. In most cases 4 is a good number." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:73 +msgid "Holes" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:75 +msgid "" +"Real world game levels don't always have large continuous areas that should " +"be occluded. Often walls will have a door or windows, caves will have an " +"entrance, etc. In some cases we have to make do by placing several " +"OccluderShapePolygons around such an opening, but Occluder polygons have one " +"more trick up their sleeve - they can have \"holes\"." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:77 +msgid "" +"In the inspector you will notice that as well as a set of points for the " +"polygon, the polygon has a set of points for a single \"hole\". If you add 3 " +"or 4 to your polygon, you will see they appear in the editor as smaller " +"handles. You can drag these around just like the polygon handles, to form a " +"convex hole." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:81 +msgid "" +"The hole can be totally within the polygon (such as a window), abutting the " +"edge (like a door) or crossing the edge of the polygon completely, to make " +"the occluder concave. The way the hole works is that the culling follows a " +"simple rule:" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:83 +msgid "" +"If the object to be culled is totally hidden by the polygon, it then looks " +"to see whether it can be seen *through* the hole. If the object touches the " +"hole, it is not culled, but if hidden by the polygon and not seen through " +"the hole it is culled." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:85 +msgid "" +"Placing holes is usually far more convenient, and works faster and better at " +"runtime, than creating lots of smaller OccluderShapePolygons." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:88 +msgid "Hole Limits" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:90 +msgid "" +"The main limitation of holes is that there can only be one per polygon. If " +"you have a situation which requires two or more holes, you have a choice:" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:92 +msgid "" +"Combine the area of the two holes into one bigger hole (if they are close " +"together)." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:93 +msgid "Use two or more OccluderPolygons." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:95 +msgid "" +"Remember that if you are using more than one polygon, they can overlap, and " +"you should use this to your advantage." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:98 +msgid "How many Occluder polys are needed?" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:100 +msgid "" +"This very much depends on your scene, but generally you can start getting a " +"good benefit from 3 or 4 well placed polygons. After that it is totally up " +"to you how much time you want to spend. Placing occluders is a bit of an art " +"form, and you will get better at it and learn new tricks the more you work " +"with them." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:104 +msgid "Some ideas:" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:106 +msgid "Build your levels to take advantage of occlusion." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:108 +msgid "" +"This is one of the secrets of the pros. A good level design is not just " +"about what the gameplay demands, it should also be built with occlusion in " +"mind." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:110 +msgid "" +"When in a building with multiple floors, try placing an occluder polygon " +"between each floor, with a hole for where the staircase transitions between " +"them. This can potentially cull out entire floors and greatly improve " +"performance." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:111 +msgid "" +"Don't be afraid to extend your occluder polygons far past the edges of " +"visible geometry to cull more objects - for instance far into the ground or " +"sky." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:114 +msgid "Using polygons dynamically" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:116 +msgid "" +"Like all geometric occluders, polygons are not confined to static (non-" +"moving) geometry. You can place them on moving objects. You can even change " +"the relative position of the points in realtime." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:118 +msgid "Some guidelines:" +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:120 +msgid "" +"There is a slight cost to moving polygons, the points of the polygons must " +"be transformed on the CPU each time their transform changes." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:122 +msgid "" +"This is not something to worry excessively about, even CPUs are reasonably " +"fast at transforming points, and generally polygons have very few points " +"compared to rendered geometry. But it is something to consider, if you " +"wanted to create e.g. 10,000 simultaneous spaceships all with occluder polys." +msgstr "" + +#: ../../docs/tutorials/3d/occluders.rst:124 +msgid "" +"Changing the transform of the polygon Node (e.g. by moving the parent " +"object) is cheaper than changing the points themselves. Use the former " +"rather than the latter wherever possible." +msgstr "" + #: ../../docs/tutorials/3d/portals/index.rst:4 msgid "Rooms and Portals" msgstr "" @@ -20225,28 +20767,28 @@ msgid "" "This conversion must take place every time you want to activate the system. " "It does not store the *room graph* in your project (for flexibility and to " "save memory). You can either trigger it by pressing the **Convert Rooms** " -"button in the editor toolbar (which also has a keyboard shortcut), or you " -"can call the ``rooms_convert()`` method in the RoomManager. This latter " -"method will be what you use in-game. Note that for safety, best practice is " -"to call ``rooms_clear()`` before unloading or changing levels." +"button in the editor toolbar (which also has a keyboard shortcut) or by " +"calling the ``rooms_convert()`` method in the RoomManager. The latter method " +"will be what you use in-game. Note that for safety, best practice is to call " +"``rooms_clear()`` before unloading or changing levels." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:16 msgid "" "If you convert the level while the editor is running, the portal culling " -"system will take over from the normal Godot frustum culling. This may affect " -"some editor features. For this reason, you can turn the portal culling on " -"and off, using either the **View Portal Culling** toggle in the **View** " -"menu on the editor toolbar (which also has a keyboard shortcut), or via the " -"**Active** setting in the RoomManager node." +"system will take over from the normal Godot frustum culling, potentially " +"interfering with editor features. To get around this, you can turn portal " +"culling on and off using either the **View Portal Culling** toggle in the " +"**View** menu on the editor toolbar (which also has a keyboard shortcut) or " +"the **Active** setting in the RoomManager node." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:18 msgid "" "To use the RoomManager, you have to tell it where the rooms are in your " -"scene tree, or rather where the RoomList node is. This RoomList is the " -"parent of your rooms - see below. If the RoomList is not set, conversion " -"will fail, and you will see a warning dialog box." +"scene tree, or, more specifically, where the RoomList node is. This RoomList " +"is the parent of your rooms - see below. If the RoomList is not set, " +"conversion will fail, and you will see a warning dialog box." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:23 @@ -20256,33 +20798,33 @@ msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:25 msgid "" "Before we create any rooms, we must first create a node to be the parent of " -"all the static objects, rooms, roomgroups and so on in our level. This node " +"all the static objects, rooms, roomgroups, and so on in our level. This node " "is referred to as the the ``RoomList``." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:29 msgid "" -"The roomlist is **not** a special node type, it can just be a regular " +"The roomlist is **not** a special node type – it can just be a regular " "Spatial." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:31 msgid "" -"You will need to assign the roomlist node in the RoomManager, so the " -"RoomManager knows where to find the rooms." +"You will need to assign the roomlist node in the RoomManager so that it " +"knows where to find the rooms." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:33 msgid "" -"Why do we use a specific branch of the scene tree, and not use the scene " -"root? The answer is that there are many internal details of the system which " -"are easier to manage if the rooms are placed on their own branch." +"Why do we use a specific branch of the scene tree and not the scene root? " +"The answer is that there are many internal details of the system which are " +"easier to manage if the rooms are placed on their own branch." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:35 msgid "" -"Often, you will end up completely replacing the roomlist branch at runtime " -"in your game as you load and unload levels." +"Often you will end up completely replacing the roomlist branch at runtime in " +"your game as you load and unload levels." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:38 @@ -20296,17 +20838,16 @@ msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:43 msgid "" ":ref:`Room`\\ s are a way of spatially partitioning your level " -"into areas that make sense in terms of the level design. Rooms often quite " -"literally *are* rooms (for instance in a building). Ultimately though, as " -"far as the engine is concerned, a room respresents a **non-overlapping** " -"convex volume, in which you would typically place most of your objects that " -"fall within that area." +"into areas that make sense in terms of level design. Rooms often quite " +"literally *are* rooms (like in a building). Ultimately though, as far as the " +"engine is concerned, a room represents a **non-overlapping** convex volume " +"in which you typically place most of your objects that fall within that area." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:45 msgid "" -"A room doesn't need to correspond to a literal room. It could for example " -"also be a canyon in an outdoor area, or a smaller part of a concave room. " +"A room doesn't need to correspond to a literal room. It could, for example, " +"also be a canyon in an outdoor area or a smaller part of a concave room. " "With a little imagination, you can use the system in almost any scenario." msgstr "" @@ -20316,13 +20857,12 @@ msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:50 msgid "" -"The reason why rooms are defined as convex volumes (or *convex hulls* as " -"they are known), is that mathematically, it is very easy to determine " -"whether a point is within a convex hull. A simple plane check will tell you " -"the distance of a point from a plane. If a point is behind all the planes " -"bounding the convex hull, then by definition, it is inside the room. This " -"makes all kinds of things easier in the internals of the system, such as " -"checking which room a camera is within." +"Rooms are defined as convex volumes (or *convex hulls*) because it's trivial " +"to mathematically determine whether a point is within a convex hull. A " +"simple plane check will tell you the distance of a point from a plane. If a " +"point is behind all the planes bounding the convex hull, then by definition " +"it is inside the room. This makes all kinds of things easier in the " +"internals of the system, such as checking which room a camera is within." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:52 @@ -20345,22 +20885,22 @@ msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:61 msgid "" -"If you accidentally create overlapping rooms, the editor will flag a warning " -"when you convert the rooms, and indicate any overlapping zones in red." +"If you accidentally create overlapping rooms, the editor will warn you when " +"you convert the rooms, indicating any overlapping zones in red." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:65 msgid "" "The system does attempt to cope with overlapping rooms as best as possible " "by making the current room *\"sticky\"*. Each object remembers which room it " -"was in last frame, and stays within it as long as it does not move outside " -"the convex hull room bound. This can result in some hysteresis in these " -"overlapping zones." +"was in during the previous frame and stays within it as long as it does not " +"move outside the convex hull room bound. This can result in some hysteresis " +"in these overlapping zones." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:67 msgid "" -"There is one exception however for :ref:`internal " +"There is one exception, however, for :ref:`internal " "rooms`. You do not have to worry about " "these to start with." msgstr "" @@ -20394,15 +20934,15 @@ msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:80 msgid "" -"By manually editing the points that define the convex hull, in the room " -"inspector, or dragging the points using the editor gizmo (see :ref:" +"Manually edit the points that define the convex hull in the room inspector " +"or drag the points around using the editor gizmo (see :ref:" "`doc_room_point_editing`)." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:81 msgid "" "Provide a manual bound. This is a MeshInstance in the room that has geometry " -"in the shape of the desired bound, with a name with a postfix ``-bound``. " +"in the shape of the desired bound, with a name with the postfix ``-bound``. " "This is something you might choose to do if you create your levels in " "Blender or similar (see :ref:`doc_rooms_and_portals_blender`)." msgstr "" @@ -20410,10 +20950,10 @@ msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:83 msgid "" "While the first option can be all that is required, particularly with simple " -"rooms, or for pre-production, the power of the manual bounds gives you " -"ultimate control (at the expense of a small amount of editing). You can also " -"combine the two approaches, perhaps using automatic bounds for most rooms " -"but manually editing problem areas." +"rooms or for pre-production, using manual bounds gives you ultimate control " +"at the expense of a small amount of editing. You can also combine the two " +"approaches, perhaps using automatic bounds for most rooms but manually " +"editing problem areas." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:85 @@ -20436,28 +20976,28 @@ msgstr "" msgid "" "If you create some rooms, place objects within them, then convert the level " "in the editor, you will see the objects in the rooms appearing and showing " -"as you move between rooms. There is one problem however! Although you can " +"as you move between rooms. There is one problem, however! Although you can " "see the objects within the room that the camera is in, you can't see to any " "neighbouring rooms! For that we need portals." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:96 msgid "" -":ref:`Portal`\\ s are special convex polygons. You position " -"over the openings between rooms, in order to allow the system to see between " -"them. You can create a portal node directly in the editor. The default " -"portal has 4 points and behaves much like a ``plane`` :ref:" +":ref:`Portal`\\ s are special convex polygons that you " +"position over the openings between rooms in order to allow the system to see " +"between them. You can create a portal node directly in the editor. The " +"default portal has 4 points and behaves much like a ``plane`` :ref:" "`MeshInstance`. You can add or remove points using the " -"inspector. A portal will require at least 3 points to work - this is because " -"it needs to form a polygon rather than a point or line." +"inspector. A portal requires at least 3 points to work - this is because it " +"needs to form a polygon rather than a point or line." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:98 msgid "" "To save editing effort, **only one Portal is required between each pair of " "Rooms**. You *do not need* to (and indeed should not) create two Portals " -"that overlap in opposite directions. Portals default to being two-way (but " -"you can make them one-way in the Portal inspector)." +"that overlap in opposite directions. Portals default to being two-way, but " +"you can make them one-way in the Portal inspector." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:100 @@ -20481,9 +21021,7 @@ msgid "Portal linking" msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:109 -msgid "" -"There are two options for dealing with specifying which room the portal " -"should link to." +msgid "There are two ways to specify which room the portal should link to:" msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:111 @@ -20495,8 +21033,7 @@ msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:112 msgid "" -"You can explicitly specify the room by setting the **Linked Room** in the " -"inspector." +"Explicitly specify the room by setting the **Linked Room** in the inspector." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:114 @@ -20517,8 +21054,8 @@ msgstr "" msgid "" "By now you should be able to create a couple of rooms, add some nodes such " "as MeshInstances within the rooms, and add a portal between the rooms. Try " -"converting the rooms in the editor, and see if you can now see the objects " -"in neighbouring rooms, through the portal." +"converting the rooms in the editor and see if you can now view the objects " +"in neighbouring rooms through the portal." msgstr "" #: ../../docs/tutorials/3d/portals/first_steps_with_rooms_and_portals.rst:123 @@ -21763,6 +22300,66 @@ msgid "" "You can now edit these with the gizmo handles." msgstr "" +#: ../../docs/tutorials/3d/3d_text.rst:4 +msgid "3D text" +msgstr "" + +#: ../../docs/tutorials/3d/3d_text.rst:9 +msgid "" +"In a project, there may be times when text needs to be created as part of a " +"3D scene and not just in the HUD. Godot provides two methods to do this. The " +"Label3D node and the text mesh for a MeshInstance node." +msgstr "" + +#: ../../docs/tutorials/3d/3d_text.rst:14 +msgid "" +"This page does **not** cover how to display a GUI scene in a 3D environment. " +"For information on how to do that see `this `__ demo project." +msgstr "" + +#: ../../docs/tutorials/3d/3d_text.rst:19 +msgid "Label3D" +msgstr "" + +#: ../../docs/tutorials/3d/3d_text.rst:23 +msgid "" +"Label3D behaves like a label node but in a 3D space. Unlike label node this " +"can not inherit properties of a GUI theme. However its look remains " +"customizable and uses the same DynamicFont and BitmapFont subresources " +"control nodes use." +msgstr "" + +#: ../../docs/tutorials/3d/3d_text.rst:28 +msgid "" +"Label3D has minimal interaction with a 3D environment, it can be lit up and " +"shaded by light sources if the shaded flag is enabled, but it will not cast " +"a shadow, even with cast shadow turned on under the nodes GeometryInstance3D " +"settings. This is because the node is a quad mesh (one glyph per quad) with " +"transparent textures and has the same limitations as Sprite3D. See :ref:" +"`this page ` for more " +"information." +msgstr "" + +#: ../../docs/tutorials/3d/3d_text.rst:37 +msgid "Text mesh" +msgstr "" + +#: ../../docs/tutorials/3d/3d_text.rst:41 +msgid "" +"Text meshes have similarities to Label3D. They display text in a 3D scene, " +"and will use the same DynamicFont subresource. However text is 3D and has " +"the properties of a mesh. A text mesh cast shadows onto the environment and " +"can have a material applied to it. Here is an example of a texture and how " +"it's applied to the mesh." +msgstr "" + +#: ../../docs/tutorials/3d/3d_text.rst:51 +msgid "" +"There are two limitations to text mesh. It can't use bitmap fonts, or fonts " +"with self intersection." +msgstr "" + #: ../../docs/tutorials/animation/introduction.rst:4 msgid "Introduction to the animation features" msgstr "" @@ -23239,8 +23836,8 @@ msgstr "" msgid "" "With :ref:`AnimationPlayer `, Godot has one of the " "most flexible animation systems that you can find in any game engine. The " -"ability to animate pretty much any property in any node or resource, as well " -"as having dedicated transform, bezier, function calling, audio and sub-" +"ability to animate almost any property in any node or resource, as well as " +"having dedicated transform, bezier, function calling, audio and sub-" "animation tracks, is pretty much unique." msgstr "" @@ -23513,14 +24110,14 @@ msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:166 msgid "" -"This node is a relatively simple state machine. Root nodes can be created " -"and connected via lines. States are connected via *Transitions*, which are " -"connections with special properties. Transitions are uni-directional, but " -"two can be used to connect in both ways." +"This node acts as a state machine with root nodes as states. Root nodes can " +"be created and connected via lines. States are connected via *Transitions*, " +"which are connections with special properties. Transitions are uni-" +"directional, but two can be used to connect in both directions." msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:171 -msgid "There are many types of transitions:" +msgid "There are many types of transition:" msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:175 @@ -23573,14 +24170,14 @@ msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:188 msgid "" "*Priority* is used together with the ``travel()`` function from code (more " -"on this later). When travelling from a state to another, give more priority " -"to this node." +"on this later). Lower priority transitions are preferred when travelling " +"through the tree." msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:189 msgid "" -"*Disabled* allows to disable this transition (it will not be used during " -"travel or auto advance)." +"*Disabled* toggles disabling this transition (when disabled, it will not be " +"used during travel or auto advance)." msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:193 @@ -23619,7 +24216,7 @@ msgstr "" msgid "" "There is also a tool node, ``RootMotionView``, that can be placed in a scene " "and will act as a custom floor for your character and animations (this node " -"is normally disabled during the game)." +"is disabled by default during the game)." msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:223 @@ -23635,11 +24232,12 @@ msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:227 msgid "" "Keep in mind that the animation nodes are just resources and, as such, they " -"are shared between all the instances. Setting values in the nodes directly " -"will affect all instances of the scene that uses this ``AnimationTree``. " -"This has some cool use cases, though, e.g. you can copy and paste parts of " -"your animation tree, or reuse nodes with a complex layout (such as a state " -"machine or blend space) in different animation trees." +"are shared between all instances using them. Setting values in the nodes " +"directly will affect all instances of the scene that uses this " +"``AnimationTree``. This is generally undesirable, but does have some cool " +"use cases, e.g. you can copy and paste parts of your animation tree, or " +"reuse nodes with a complex layout (such as a state machine or blend space) " +"in different animation trees." msgstr "" #: ../../docs/tutorials/animation/animation_tree.rst:232 @@ -23676,12 +24274,12 @@ msgid "" "One of the nice features in Godot's ``StateMachine`` implementation is the " "ability to travel. The graph can be instructed to go from the current state " "to another one, while visiting all the intermediate ones. This is done via " -"the A\\* algorithm. In the absence of any transition between the current " -"state and the destination state, the graph teleports to the destination " -"state." +"the A\\* algorithm. In the absence of any viable set of transitions starting " +"at the current state and finishing at the destination state, the graph " +"teleports to the destination state." msgstr "" -#: ../../docs/tutorials/animation/animation_tree.rst:265 +#: ../../docs/tutorials/animation/animation_tree.rst:266 msgid "" "To use the travel ability, you should first retrieve the :ref:" "`AnimationNodeStateMachinePlayback " @@ -23689,18 +24287,399 @@ msgid "" "node (it is exported as a property)." msgstr "" -#: ../../docs/tutorials/animation/animation_tree.rst:278 +#: ../../docs/tutorials/animation/animation_tree.rst:279 msgid "" "Once retrieved, it can be used by calling one of the many functions it " "offers:" msgstr "" -#: ../../docs/tutorials/animation/animation_tree.rst:289 +#: ../../docs/tutorials/animation/animation_tree.rst:290 msgid "" "The state machine must be running before you can travel. Make sure to either " "call ``start()`` or choose a node to **Autoplay on Load**." msgstr "" +#: ../../docs/tutorials/animation/playing_videos.rst:4 +msgid "Playing videos" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:6 +msgid "Godot supports video playback with the :ref:`class_VideoPlayer` node." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:9 +msgid "Supported playback formats" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:11 +msgid "" +"The only supported format in core is **Ogg Theora** (not to be confused with " +"Ogg Vorbis audio). It's possible for extensions to bring support for " +"additional formats, but no such extensions exist yet as of July 2022." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:15 +msgid "" +"H.264 and H.265 cannot be supported in core Godot, as they are both " +"encumbered by software patents. AV1 is royalty-free, but it remains slow to " +"decode on the CPU and hardware decoding support isn't readily available on " +"all GPUs in use yet." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:20 +msgid "" +"WebM is supported in core in Godot 3.x, but support for it will be removed " +"in 4.0 as it proved to be too buggy and difficult to maintain. Therefore, " +"**using WebM is not recommended**." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:26 +msgid "" +"You may find videos with an ``.ogg`` or ``.ogx`` extensions, which are " +"generic extensions for data within an Ogg container." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:29 +msgid "" +"Renaming these file extensions to ``.ogv`` *may* allow the videos to be " +"imported in Godot. However, not all files with ``.ogg`` or ``.ogx`` " +"extensions are videos - some of them may only contain audio." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:34 +msgid "Setting up VideoPlayer" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:36 +msgid "Create a VideoPlayer node using the Create New Node dialog." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:37 +msgid "" +"Select the VideoPlayer node in the scene tree dock, go to the inspector and " +"load an ``.ogv`` file in the Stream property." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:40 +msgid "" +"If you don't have your video in Ogg Theora format yet, jump to :ref:" +"`doc_playing_videos_recommended_theora_encoding_settings`." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:43 +msgid "" +"If you want the video to play as soon as the scene is loaded, check " +"**Autoplay** in the inspector. If not, leave **Autoplay** disabled and call " +"``play()`` on the VideoPlayer node in a script to start playback when " +"desired." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:49 +msgid "Handling resizing and different aspect ratios" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:51 +msgid "" +"By default in Godot 4.0, the VideoPlayer will automatically be resized to " +"match the video's resolution. You can make it follow usual :ref:" +"`class_Control` sizing by enabling **Expand** on the VideoPlayer node." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:55 +msgid "" +"To adjust how the VideoPlayer node resizes depending on window size, adjust " +"the anchors using the **Layout** menu at the top of the 2D editor viewport. " +"However, this setup may not be powerful enough to handle all use cases, such " +"as playing fullscreen videos without distorting the video (but with empty " +"space on the edges instead). For more control, you can use an :ref:" +"`class_AspectRatioContainer` node, which is designed to handle this kind of " +"use case:" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:63 +msgid "" +"Add an AspectRatioContainer node. Make sure it is not a child of any other " +"container node. Select the AspectRatioContainer node, then set its " +"**Layout** at the top of the 2D editor to **Full Rect**. Set **Ratio** in " +"the AspectRatioContainer node to match your video's aspect ratio. You can " +"use math formulas in the inspector to help yourself. Remember to make one of " +"the operands a float. Otherwise, the division's result will always be an " +"integer." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:75 +msgid "" +"AspectRatioContainer's Ratio property being modified in the editor inspector" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:75 +msgid "This will evaluate to (approximately) 1.777778" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:77 +msgid "" +"Once you've configured the AspectRatioContainer, reparent your VideoPlayer " +"node to be a child of the AspectRatioContainer node. Make sure **Expand** is " +"disabled on the VideoPlayer. Your video should now scale automatically to " +"fit the whole screen while avoiding distortion." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:84 +msgid "" +"See :ref:`doc_multiple_resolutions` for more tips on supporting multiple " +"aspect ratios in your project." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:88 +msgid "Displaying a video on a 3D surface" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:90 +msgid "" +"Using a VideoPlayer node as a child of a :ref:`class_Viewport` node, it's " +"possible to display any 2D node on a 3D surface. For example, this can be " +"used to display animated billboards when frame-by-frame animation would " +"require too much memory." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:95 +msgid "This can be done with the following steps:" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:97 +msgid "" +"Create a :ref:`class_Viewport` node. Set its size to match your video's size " +"in pixels." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:99 +msgid "" +"Create a VideoPlayer node *as a child of the Viewport node* and specify a " +"video path in it. Make sure **Expand** is disabled, and enable **Autoplay** " +"if needed." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:101 +msgid "" +"Create a MeshInstance node with a PlaneMesh or QuadMesh resource in its Mesh " +"property. Resize the mesh to match the video's aspect ratio (otherwise, it " +"will appear distorted)." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:103 +msgid "" +"Create a new SpatialMaterial resource in the **Material Override** property " +"in the GeometryInstance section." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:105 +msgid "" +"Enable **Local To Scene** in the SpatialMaterial's Resource section (at the " +"bottom). This is *required* before you can use a ViewportTexture in its " +"Albedo Texture property." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:107 +msgid "" +"In the SpatialMaterial, set the **Albedo > Texture** property to **New " +"ViewportTexture**. Edit the new resource by clicking it, then specify the " +"path to the Viewport node in the **Viewport Path** property." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:110 +msgid "" +"Enable **Albedo Tex Force sRGB** in the SpatialMaterial to prevent colors " +"from being washed out." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:112 +msgid "" +"If the billboard is supposed to emit its own light, enable **Flags > " +"Unshaded** to improve rendering performance." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:115 +msgid "" +"See :ref:`doc_viewports` and the `GUI in 3D demo `__ for more " +"information on setting this up." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:120 +msgid "Video decoding conditions and recommended resolutions" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:122 +msgid "" +"Video decoding is performed on the CPU, as GPUs don't have hardware " +"acceleration for decoding Theora videos. Modern desktop CPUs can decode Ogg " +"Theora videos at 1440p @ 60 FPS or more, but low-end mobile CPUs will likely " +"struggle with high-resolution videos." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:127 +msgid "To ensure your videos decode smoothly on varied hardware:" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:129 +msgid "" +"When developing games for desktop platforms, it's recommended to encode in " +"1080p at most (preferably at 30 FPS). Most people are still using 1080p or " +"lower resolution displays, so encoding higher-resolution videos may not be " +"worth the increased file size and CPU requirements." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:133 +msgid "" +"When developing games for mobile or web platforms, it's recommended to " +"encode in 720p at most (preferably at 30 FPS or even lower). The visual " +"difference between 720p and 1080p videos on a mobile device is usually not " +"that noticeable." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:139 +msgid "Playback limitations" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:141 +msgid "" +"There are several limitations with the current implementation of video " +"playback in Godot:" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:143 +msgid "Seeking a video to a certain point is not supported." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:144 +msgid "" +"Changing playback speed is not supported. VideoPlayer also won't follow :ref:" +"`Engine.time_scale`." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:146 +msgid "" +"Looping is not supported, but you can connect a VideoPlayer's :ref:`finished " +"` signal to a function that plays the " +"video again. However, this will cause a black frame to be visible when the " +"video restarts. This can be worked around by adding a fade to black in the " +"video file before the video ends, or by hiding the video for one frame and " +"displaying a TextureRect with a screenshot of the first frame of the video " +"until the video is restarted." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:153 +msgid "Streaming a video from a URL is not supported." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:158 +msgid "Recommended Theora encoding settings" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:160 +msgid "" +"A word of advice is to **avoid relying on built-in Ogg Theora exporters** " +"(most of the time). There are 2 reasons you may want to favor using an " +"external program to encode your video:" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:163 +msgid "" +"Some programs such as Blender can render to Ogg Theora. However, the default " +"quality presets are usually very low by today's standards. You may be able " +"to increase the quality options in the software you're using, but you may " +"find the output quality to remain less than ideal (given the increased file " +"size). This usually means that the software only supports encoding to " +"constant bit rate (CBR), instead of variable bit rate (VBR). VBR encoding " +"should be preferred in most scenarios as it provides a better quality to " +"file size ratio." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:171 +msgid "Some other programs can't render to Ogg Theora at all." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:173 +msgid "" +"In this case, you can **render the video to an intermediate high-quality " +"format** (such as a high-bitrate H.264 video) then re-encode it to Ogg " +"Theora. Ideally, you should use a lossless or uncompressed format as an " +"intermediate format to maximize the quality of the output Ogg Theora video, " +"but this can require a lot of disk space." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:179 +msgid "" +"`HandBrake `__ (GUI) and `FFmpeg `__ (CLI) are popular open source tools for this purpose. FFmpeg has a " +"steeper learning curve, but it's more powerful." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:183 +msgid "" +"Here are example FFmpeg commands to convert a MP4 video to Ogg Theora. Since " +"FFmpeg supports a lot of input formats, you should be able to use the " +"commands below with almost any input video format (AVI, MOV, WebM, …)." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:189 +msgid "" +"Make sure your copy of FFmpeg is compiled with libtheora and libvorbis " +"support. You can check this by running ``ffmpeg`` without any arguments, " +"then looking at the ``configuration:`` line in the command output." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:194 +msgid "Balancing quality and file size" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:196 +msgid "" +"The **video quality** level (``-q:v``) must be between ``1`` and ``10``. " +"Quality ``6`` is a good compromise between quality and file size. If " +"encoding at a high resolution (such as 1440p or 4K), you will probably want " +"to decrease ``-q:v`` to ``5`` to keep file sizes reasonable. Since pixel " +"density is higher on a 1440p or 4K video, lower quality presets at higher " +"resolutions will look as good or better compared to low-resolution videos." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:203 +msgid "" +"The **audio quality** level (``-q:a``) must be between ``-1`` and ``10``. " +"Quality ``6`` provides a good compromise between quality and file size. In " +"contrast to video quality, increasing audio quality doesn't increase the " +"output file size nearly as much. Therefore, if you want the cleanest audio " +"possible, you can increase this to ``9`` to get *perceptually lossless* " +"audio. This is especially valuable if your input file already uses lossy " +"audio compression. See `this page `__ for a table " +"listing Ogg Vorbis audio quality presets and their respective variable " +"bitrates." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:214 +msgid "FFmpeg: Convert while preserving original video resolution" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:216 +msgid "" +"The following command converts the video while keeping its original " +"resolution. The video and audio's bitrate will be variable to maximize " +"quality while saving space in parts of the video/audio that don't require a " +"high bitrate (such as static scenes)." +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:226 +msgid "FFmpeg: Resize the video then convert it" +msgstr "" + +#: ../../docs/tutorials/animation/playing_videos.rst:228 +msgid "" +"The following command resizes a video to be 720 pixels tall (720p), while " +"preserving its existing aspect ratio. This helps decrease the file size " +"significantly if the source is recorded at a higher resolution than 720p:" +msgstr "" + #: ../../docs/tutorials/assets_pipeline/index.rst:2 msgid "Assets pipeline" msgstr "" @@ -24048,10 +25027,10 @@ msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:75 #: ../../docs/tutorials/editor/command_line_tutorial.rst:103 #: ../../docs/tutorials/editor/command_line_tutorial.rst:133 -#: ../../docs/tutorials/export/exporting_for_macos.rst:55 -#: ../../docs/tutorials/export/exporting_for_macos.rst:78 -#: ../../docs/tutorials/export/exporting_for_macos.rst:101 -#: ../../docs/tutorials/export/exporting_for_macos.rst:144 +#: ../../docs/tutorials/export/exporting_for_macos.rst:59 +#: ../../docs/tutorials/export/exporting_for_macos.rst:85 +#: ../../docs/tutorials/export/exporting_for_macos.rst:112 +#: ../../docs/tutorials/export/exporting_for_macos.rst:155 #: ../../docs/tutorials/inputs/inputevent.rst:130 #: ../../docs/tutorials/io/binary_serialization_api.rst:102 #: ../../docs/tutorials/io/binary_serialization_api.rst:113 @@ -24088,13 +25067,13 @@ msgstr "" #: ../../docs/tutorials/scripting/creating_script_templates.rst:125 #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:21 #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:523 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:569 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:643 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:570 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:644 #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:15 #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:94 #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:139 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:191 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:316 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:210 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:339 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:17 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:52 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:114 @@ -24931,21 +25910,28 @@ msgstr "" #: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:57 msgid "" -"Blender does not export emissive textures with the glTF file. If your model " -"uses one, it must be brought in separately." +"Blend shape animations cannot be imported - they require manual animation " +"within Godot." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:68 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:61 +msgid "" +"Blender versions older than 3.2 do not export emissive textures with the " +"glTF file. If your model uses one and you're using an older version of " +"Blender, it must be brought in separately." +msgstr "" + +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:73 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:70 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:75 msgid "" "Blender has built-in COLLADA support, but it does not work properly for the " "needs of game engines and should not be used as is." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:73 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:78 msgid "" "Godot provides a `Blender plugin `_ that will correctly export COLLADA scenes for use in Godot. It " @@ -24953,11 +25939,11 @@ msgid "" "the future." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:78 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:83 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:80 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:85 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -24966,17 +25952,17 @@ msgid "" "experimental." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:86 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:91 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:90 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:95 msgid "Exporting textures separately" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:92 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:97 msgid "" "While textures can be exported with a model in certain file formats, such as " "glTF 2.0, you can also export them separately. Godot uses PBR (physically " @@ -24987,16 +25973,16 @@ msgid "" "RodZill4/material-maker>`__." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:97 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:102 msgid "" "For more information on Godot's materials, see :ref:`doc_spatial_material`." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:100 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:105 msgid "Exporting considerations" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:102 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:107 msgid "" "Since GPUs can only render triangles, meshes that contain quads or N-gons " "have to be *triangulated* before they can be rendered. Godot can triangulate " @@ -25006,7 +25992,7 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:109 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:114 msgid "" "To avoid issues with incorrect triangulation after importing in Godot, it is " "recommended to make the 3D DCC triangulate objects on its own. In Blender, " @@ -25016,146 +26002,146 @@ msgid "" "**Triangulate Faces** option in the export dialog." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:116 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:121 msgid "" "To avoid issues with 3D selection in the editor, it is recommended to apply " "the object transform in the 3D DCC before exporting the scene." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:120 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:125 msgid "Import workflows" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:122 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:127 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:125 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:130 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:126 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:131 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:127 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:132 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:128 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:133 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:129 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:134 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:133 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:138 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:136 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:141 msgid "Import options" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:138 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:143 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:146 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:151 msgid "Root Type" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:148 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:153 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:151 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:156 msgid "Root Name" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:153 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:158 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:156 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:161 msgid "Root Scale" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:158 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:163 msgid "The scale of the root node." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:161 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:166 msgid "Custom Script" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:163 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:168 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 etc." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:167 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:172 msgid "Create a script like this:" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:179 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:184 msgid "" "The ``post_import`` 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. It can be a different one." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:184 -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:203 -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:268 -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:366 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:189 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:208 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:273 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:371 msgid "Storage" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:186 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:191 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:190 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:195 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:197 -#: ../../docs/tutorials/export/exporting_for_macos.rst:115 -#: ../../docs/tutorials/io/data_paths.rst:45 -#: ../../docs/tutorials/io/data_paths.rst:73 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:202 +#: ../../docs/tutorials/export/exporting_for_macos.rst:126 +#: ../../docs/tutorials/io/data_paths.rst:72 +#: ../../docs/tutorials/io/data_paths.rst:121 msgid "Location" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:199 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:204 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:205 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:210 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -25163,19 +26149,19 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:209 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:214 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:214 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:219 msgid "" "Godot will not reimport materials that are stored in external files unless " "you remove the associated ``.material`` file before reimporting." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:217 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:222 msgid "" "To force reimporting materials every time the 3D scene is reimported, change " "the material storage mode in the 3D scene by selecting it in the FileSystem " @@ -25183,111 +26169,111 @@ msgid "" "**Built-In** instead of **Files**." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:223 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:228 msgid "Keep On Reimport" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:225 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:230 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:230 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:235 msgid "Meshes" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:233 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:238 msgid "Compress" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:235 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:240 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:248 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:253 msgid "These are:" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:239 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:244 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:240 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:245 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:241 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:246 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:242 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:247 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:243 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:248 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:244 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:249 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:245 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:250 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:246 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:251 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:247 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:252 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:248 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:253 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:252 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:257 msgid "Additional info:" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:251 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:256 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:252 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:257 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:254 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:259 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -25296,11 +26282,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:260 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:265 msgid "Ensure Tangents" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:262 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:267 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -25308,60 +26294,60 @@ msgid "" "this, but it's always better to have them generated in the exporter." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:270 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:275 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:273 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:278 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:277 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:282 msgid "Light Baking" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:279 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:284 msgid "Whether or not the mesh is used in baked lightmaps." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:281 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:286 msgid "**Disabled:** The mesh is not used in baked lightmaps." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:282 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:287 msgid "**Enable:** The mesh is used in baked lightmaps." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:283 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:288 msgid "" "**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " "UV layer for lightmaps." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:285 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:290 msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:288 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:293 msgid "External Files" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:290 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:295 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:294 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:299 msgid "Animation options" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:296 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:301 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -25369,11 +26355,11 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:303 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:308 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:307 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:312 msgid "" "To modify animations from an imported 3D scene, you need to change the " "animation storage option from **Built-In** to **Files** in the Import dock. " @@ -25381,11 +26367,11 @@ msgid "" "project is run." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:312 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:317 msgid "FPS" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:314 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:319 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -25393,17 +26379,17 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:319 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:324 msgid "Filter Script" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:321 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:326 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_scenes.rst:324 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:329 msgid "" "The filter script is executed against each imported animation. The syntax " "consists of two types of statements, the first for choosing which animations " @@ -25413,7 +26399,7 @@ msgid "" "under the hood)." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:330 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:335 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 " @@ -25421,7 +26407,7 @@ msgid "" "``\"_Loop\"``::" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:336 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:341 msgid "" "Similarly, additional patterns can be added to the same line, separated by " "commas. Here is a modified example to additionally *include* all animations " @@ -25429,7 +26415,7 @@ msgid "" "animations which have names ending in ``\"Attack\"``::" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:342 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:347 msgid "" "Following the animation selection filter statement, we add track filtering " "patterns to indicate which animation tracks should be kept or discarded. If " @@ -25437,7 +26423,7 @@ msgid "" "animations will be discarded!" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:346 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:351 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 " @@ -25446,48 +26432,48 @@ msgid "" "in the filter script." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:351 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.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_scenes.rst:360 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:365 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_scenes.rst:363 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:368 msgid "" "Any track filter lines that do not begin with a ``+`` or ``-`` are ignored." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:368 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:373 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:372 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:377 msgid "Optimizer" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:374 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:379 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:378 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:383 msgid "Clips" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:380 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:385 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. For this to work, the model must have only one animation that is " @@ -25496,11 +26482,11 @@ msgid "" "and stops on, and choose whether the animation loops or not." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:389 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:394 msgid "Scene inheritance" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:391 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:396 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " @@ -25508,56 +26494,56 @@ msgid "" "app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:394 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:399 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:399 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:404 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:401 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:406 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:402 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:407 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:404 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:409 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:409 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:414 msgid "Import hints" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:411 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:416 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:413 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:418 msgid "Adding collision detection to objects." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:414 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:419 msgid "Setting objects as navigation meshes." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:415 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:420 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:417 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:422 msgid "" "To simplify this workflow, Godot offers several suffixes that can be added " "to the names of the objects in your 3D modelling software. When imported, " @@ -25565,25 +26551,25 @@ msgid "" "automatically." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:423 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:428 msgid "All the suffixes described below are *case-sensitive*." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:426 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:431 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:428 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:433 msgid "" "Objects that have the ``-noimp`` suffix will be removed at import-time no " "matter what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:432 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:437 msgid "Create collisions (-col, -convcol, -colonly, -convcolonly)" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:434 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:439 msgid "" "The option ``-col`` will work only for Mesh objects. If it is detected, a " "child static collision node will be added, using the same geometry as the " @@ -25592,7 +26578,7 @@ msgid "" "want for level geometry (but see also ``-colonly`` below)." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:440 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:445 msgid "" "The option ``-convcol`` will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`. Unlike triangle meshes which " @@ -25605,27 +26591,27 @@ msgid "" "mostly-accurate collision detection." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:449 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:454 msgid "" "However, in both cases, the visual geometry may be too complex or not smooth " "enough for collisions. This can create physics glitches and slow down the " "engine unnecessarily." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:453 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:458 msgid "" "To solve this, the ``-colonly`` modifier exists. It will remove the mesh " "upon importing and will create a :ref:`class_staticbody` collision instead. " "This helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:457 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:462 msgid "" "The option ``-convcolonly`` works in a similar way, but will create a :ref:" "`class_convexpolygonshape` instead." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:459 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:464 msgid "" "The option ``-colonly`` can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -25633,88 +26619,88 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:466 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:471 msgid "Single arrow will create a :ref:`class_rayshape`." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:467 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:472 msgid "Cube will create a :ref:`class_boxshape`." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:468 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:473 msgid "Image will create a :ref:`class_planeshape`." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:469 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:474 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:471 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:476 msgid "" "When possible, **try to use a few primitive collision shapes** instead of " "triangle mesh or convex shapes. Primitive shapes often have the best " "performance and reliability." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:477 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:482 msgid "" "For better visibility in Blender's editor, you can set the \"X-Ray\" option " "on collision empties and set some distinct color for them in Blender's " "**User Preferences > Themes > 3D View > Empty**." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:483 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:488 msgid "" "See :ref:`doc_collision_shapes_3d` for a comprehensive overview of collision " "shapes." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:487 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:492 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:489 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:494 msgid "" "A mesh node with the ``-navmesh`` suffix will be converted to a navigation " "mesh. The original Mesh object will be removed at import-time." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:493 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:498 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:495 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:500 msgid "" "A mesh node with the ``-vehicle`` suffix will be imported as a child to a :" "ref:`class_VehicleBody` node." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:499 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:504 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:501 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:506 msgid "" "A mesh node with the ``-wheel`` suffix will be imported as a child to a :ref:" "`class_VehicleWheel` node." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:505 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:510 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:507 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:512 msgid "" "A mesh node with the ``-rigid`` suffix will be imported as a :ref:" "`class_RigidBody`." msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:510 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:515 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:512 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:517 msgid "" "Animation clips in the COLLADA document that start or end with the token " "``loop`` or ``cycle`` will be imported as a Godot Animation with the loop " @@ -25722,7 +26708,7 @@ msgid "" "a hyphen.**" msgstr "" -#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:516 +#: ../../docs/tutorials/assets_pipeline/importing_scenes.rst:521 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the ``loop`` or ``cycle`` prefix or suffix." @@ -27089,24 +28075,30 @@ msgid "" "projects/tree/master/audio/mic_record>`_." msgstr "" -#: ../../docs/tutorials/audio/recording_with_microphone.rst:14 -msgid "The structure of the demo" +#: ../../docs/tutorials/audio/recording_with_microphone.rst:13 +msgid "" +"You will need to enable audio input in the project settings, or you'll just " +"get empty audio files." msgstr "" #: ../../docs/tutorials/audio/recording_with_microphone.rst:16 +msgid "The structure of the demo" +msgstr "" + +#: ../../docs/tutorials/audio/recording_with_microphone.rst:18 msgid "" "The demo consists of a single scene. This scene includes two major parts: " "the GUI and the audio." msgstr "" -#: ../../docs/tutorials/audio/recording_with_microphone.rst:19 +#: ../../docs/tutorials/audio/recording_with_microphone.rst:21 msgid "" "We will focus on the audio part. In this demo, a bus named ``Record`` with " "the effect ``Record`` is created to handle the audio recording. An " "``AudioStreamPlayer`` named ``AudioStreamRecord`` is used for recording." msgstr "" -#: ../../docs/tutorials/audio/recording_with_microphone.rst:55 +#: ../../docs/tutorials/audio/recording_with_microphone.rst:57 msgid "" "The audio recording is handled by the :ref:`class_AudioEffectRecord` " "resource which has three methods: :ref:`get_recording() " @@ -27116,27 +28108,27 @@ msgid "" "`." msgstr "" -#: ../../docs/tutorials/audio/recording_with_microphone.rst:102 +#: ../../docs/tutorials/audio/recording_with_microphone.rst:104 msgid "" "At the start of the demo, the recording effect is not active. When the user " "presses the ``RecordButton``, the effect is enabled with " "``set_recording_active(true)``." msgstr "" -#: ../../docs/tutorials/audio/recording_with_microphone.rst:106 +#: ../../docs/tutorials/audio/recording_with_microphone.rst:108 msgid "" "On the next button press, as ``effect.is_recording_active()`` is ``true``, " "the recorded stream can be stored into the ``recording`` variable by calling " "``effect.get_recording()``." msgstr "" -#: ../../docs/tutorials/audio/recording_with_microphone.rst:140 +#: ../../docs/tutorials/audio/recording_with_microphone.rst:142 msgid "" "To playback the recording, you assign the recording as the stream of the " "``AudioStreamPlayer`` and call ``play()``." msgstr "" -#: ../../docs/tutorials/audio/recording_with_microphone.rst:160 +#: ../../docs/tutorials/audio/recording_with_microphone.rst:162 msgid "" "To save the recording, you call ``save_to_wav()`` with the path to a file. " "In this demo, the path is defined by the user via a ``LineEdit`` input box." @@ -30248,7 +31240,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:256 -#: ../../docs/tutorials/export/exporting_for_macos.rst:125 +#: ../../docs/tutorials/export/exporting_for_macos.rst:136 #: ../../docs/tutorials/platform/customizing_html5_shell.rst:190 msgid "Debugging" msgstr "" @@ -30434,18 +31426,18 @@ msgid "``{file}:{line}``" msgstr "" #: ../../docs/tutorials/editor/external_editor.rst:40 -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:90 -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:95 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:88 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:93 msgid "JetBrains Rider" msgstr "" #: ../../docs/tutorials/editor/external_editor.rst:40 -msgid "``--line {line} {file}``" +msgid "``{project} --line {line} {file}``" msgstr "" #: ../../docs/tutorials/editor/external_editor.rst:42 -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:87 -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:111 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:85 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:109 #: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:4 msgid "Visual Studio Code" msgstr "" @@ -34401,9 +35393,9 @@ msgid "" "build of the engine or have access to one (distributed alongside or perhaps " "in the original game's files). The tool can then use the Godot executable to " "export a PCK file from the command line with :ref:`OS.execute() " -"`. It makes the most sense for the game to not use " -"a tool-build though (for security) and for the modding tools to *do* use a " -"tool-enabled engine build." +"`. The game itself shouldn't use a tool-build of " +"the engine (for security), so it's best to keep the modding tool and game " +"separate." msgstr "" #: ../../docs/tutorials/export/exporting_pcks.rst:90 @@ -34721,39 +35713,62 @@ msgstr "" msgid "Textures using PVRTC compression are supported" msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:90 +#: ../../docs/tutorials/export/feature_tags.rst:91 +msgid "" +"With the exception of texture compression feature tags, default feature tags " +"are **immutable**. This means that they will *not* change depending on run-" +"time conditions. For example, ``OS.has_feature(\"mobile\")`` will return " +"``false`` when running a project exported to HTML5 on a mobile device." +msgstr "" + +#: ../../docs/tutorials/export/feature_tags.rst:96 +msgid "" +"To check whether a project exported to HTML5 is running on a mobile device, :" +"ref:`call JavaScript code ` that reads the browser's " +"user agent." +msgstr "" + +#: ../../docs/tutorials/export/feature_tags.rst:101 msgid "Custom features" msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:92 +#: ../../docs/tutorials/export/feature_tags.rst:103 msgid "" "It is possible to add custom features to a build; use the relevant field in " "the *export preset* used to generate it:" msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:98 +#: ../../docs/tutorials/export/feature_tags.rst:110 +msgid "" +"Custom feature tags are only used when running the exported project " +"(including with :ref:`doc_one-click_deploy`). They are **not used** when " +"running the project from the editor, even if the export preset marked as " +"**Runnable** for your current platform has custom feature tags defined." +msgstr "" + +#: ../../docs/tutorials/export/feature_tags.rst:116 msgid "Overriding project settings" msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:100 +#: ../../docs/tutorials/export/feature_tags.rst:118 msgid "" "Features can be used to override specific configuration values in the " "*Project Settings*. This allows you to better customize any configuration " "when doing a build." msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:103 +#: ../../docs/tutorials/export/feature_tags.rst:121 msgid "" "In the following example, a different icon is added for the demo build of " "the game (which was customized in a special export preset, which, in turn, " "includes only demo levels)." msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:108 +#: ../../docs/tutorials/export/feature_tags.rst:126 msgid "After overriding, a new field is added for this specific configuration:" msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:114 +#: ../../docs/tutorials/export/feature_tags.rst:132 msgid "" "When using the :ref:`project settings \"override.cfg\" functionality " "` (which is unrelated to feature tags), remember that " @@ -34762,21 +35777,21 @@ msgid "" "project settings on all platforms and configurations." msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:122 +#: ../../docs/tutorials/export/feature_tags.rst:140 msgid "Default overrides" msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:124 +#: ../../docs/tutorials/export/feature_tags.rst:142 msgid "" "There are already a lot of settings that come with overrides by default; " "they can be found in many sections of the project settings." msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:130 +#: ../../docs/tutorials/export/feature_tags.rst:148 msgid "Customizing the build" msgstr "" -#: ../../docs/tutorials/export/feature_tags.rst:132 +#: ../../docs/tutorials/export/feature_tags.rst:150 msgid "" "Feature tags can be used to customize a build process too, by writing a " "custom **ExportPlugin**. They are also used to specify which shared library " @@ -34825,24 +35840,35 @@ msgstr "" msgid "" "macOS apps are exported as an ``.app`` bundle, a folder with a specific " "structure which stores the executable, libraries and all the project files. " -"This bundle is packed in a ZIP archive or DMG disk image (only supported " -"when exporting for macOS)." +"This bundle can be exported as is, packed in a ZIP archive or DMG disk image " +"(only supported when exporting from a computer running macOS)." msgstr "" #: ../../docs/tutorials/export/exporting_for_macos.rst:18 msgid "" -"To enable code signing and notarization, you must export from a computer " -"running macOS with Xcode command line tools installed." +"To enable code signing with Apple Developer ID and notarization, you must " +"export from a computer running macOS with Xcode command line tools installed." msgstr "" #: ../../docs/tutorials/export/exporting_for_macos.rst:19 +msgid "" +"Ad-hoc code signing is supported on all platforms, without additional tools." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:20 #: ../../docs/tutorials/export/exporting_for_windows.rst:25 msgid "" "Download the Godot export templates. Use the Godot menu: ``Editor > Manage " "Export Templates``." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:23 +#: ../../docs/tutorials/export/exporting_for_macos.rst:21 +msgid "" +"A valid and unique ``Bundle identifier`` should be set in the " +"``Application`` section of the export options." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:25 msgid "" "Projects exported without code signing and notarization will be blocked by " "Gatekeeper if they are downloaded from unknown sources, see the :ref:" @@ -34850,51 +35876,57 @@ msgid "" "information." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:26 -msgid "Code signing and notarization" -msgstr "" - #: ../../docs/tutorials/export/exporting_for_macos.rst:28 -msgid "" -"By default, macOS will run only applications that are signed and notarized, " -"if you use any other signing configuration see :ref:`Running Godot apps on " -"macOS ` for workarounds." +msgid "Code signing and notarization" msgstr "" #: ../../docs/tutorials/export/exporting_for_macos.rst:30 msgid "" -"To notarize an app you mast have a valid `Apple Developer ID Certificate " -"`__." +"By default, macOS will run only applications that are signed and notarized. " +"If you use any other signing configuration, see :ref:`Running Godot apps on " +"macOS ` for workarounds." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:33 -msgid "If you have an Apple Developer ID Certificate" +#: ../../docs/tutorials/export/exporting_for_macos.rst:32 +msgid "" +"To notarize an app, you **must** have a valid `Apple Developer ID " +"Certificate `__." msgstr "" #: ../../docs/tutorials/export/exporting_for_macos.rst:35 +msgid "If you have an Apple Developer ID Certificate" +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:37 +msgid "" +"Export your project from a computer running macOS with Xcode command line " +"tools installed." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:38 msgid "" "Enable ``Code Signing``, ``Notarization``, ``Hardened Runtime`` and " "``Timestamp`` and disable the ``Debug`` entitlement." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:36 +#: ../../docs/tutorials/export/exporting_for_macos.rst:39 msgid "Provide valid Apple ID credentials and certificate identity." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:38 +#: ../../docs/tutorials/export/exporting_for_macos.rst:41 msgid "" "If ``Notarization`` is enabled, Godot will automatically upload the exported " "project for notarization." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:40 +#: ../../docs/tutorials/export/exporting_for_macos.rst:43 msgid "" "You can use the ``xcrun notarytool history`` command to check notarization " "status and use the ``xcrun notarytool log {ID}`` command to download the " "notarization log." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:42 +#: ../../docs/tutorials/export/exporting_for_macos.rst:45 msgid "" "If you encounter notarization issues, see `Resolving common notarization " "issues `__ for more info." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:44 +#: ../../docs/tutorials/export/exporting_for_macos.rst:47 msgid "" "After notarization is completed, `staple the ticket `__ to the exported project." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:47 +#: ../../docs/tutorials/export/exporting_for_macos.rst:50 msgid "If you do not have an Apple Developer ID Certificate" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:49 +#: ../../docs/tutorials/export/exporting_for_macos.rst:52 msgid "" -"Keep ``Code Signing`` enabled and leave the ``Identity`` option empty, in " -"this case Godot will use a ad-hoc signature, which will make running an " -"exported app easier for the end users." +"Keep ``Code Signing`` enabled and leave the ``Identity`` option empty (when " +"exporting from a computer running macOS, on other platforms this option is " +"hidden). In this case Godot will use a ad-hoc signature, which will make " +"running an exported app easier for the end users, see the :ref:`Running " +"Godot apps on macOS ` page for more information." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:52 +#: ../../docs/tutorials/export/exporting_for_macos.rst:56 msgid "Signing Options" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:55 -#: ../../docs/tutorials/export/exporting_for_macos.rst:78 +#: ../../docs/tutorials/export/exporting_for_macos.rst:59 +#: ../../docs/tutorials/export/exporting_for_macos.rst:85 msgid "Option" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:57 -#: ../../docs/tutorials/export/exporting_for_macos.rst:80 +#: ../../docs/tutorials/export/exporting_for_macos.rst:61 +#: ../../docs/tutorials/export/exporting_for_macos.rst:87 #: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:55 msgid "Enable" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:57 +#: ../../docs/tutorials/export/exporting_for_macos.rst:61 msgid "Enables code signing." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:59 +#: ../../docs/tutorials/export/exporting_for_macos.rst:63 msgid "Identity" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:59 +#: ../../docs/tutorials/export/exporting_for_macos.rst:63 msgid "" "The \"Full Name\" or \"Common Name\" of the signing identity, store in the " -"macOS key chain. [1]_" +"macOS keychain. [1]_ [2]_" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:61 +#: ../../docs/tutorials/export/exporting_for_macos.rst:65 msgid "Timestamp" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:61 +#: ../../docs/tutorials/export/exporting_for_macos.rst:65 msgid "" "Requests a timestamp server to authenticate the time of signing. Required " -"for notarization." +"for notarization. [2]_" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:63 +#: ../../docs/tutorials/export/exporting_for_macos.rst:67 msgid "Hardened Runtime" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:63 -msgid "Enables \"Hardened Runtime\". Required for notarization." +#: ../../docs/tutorials/export/exporting_for_macos.rst:67 +msgid "Enables \"Hardened Runtime\". Required for notarization. [2]_" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:65 +#: ../../docs/tutorials/export/exporting_for_macos.rst:69 msgid "Replace Existing Signature" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:65 +#: ../../docs/tutorials/export/exporting_for_macos.rst:69 msgid "" "Replaces existing signatures of the GDNative libraries and embedded helper " "executables." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:70 +#: ../../docs/tutorials/export/exporting_for_macos.rst:74 msgid "" "To notarize an app, you must enable the ``Hardened Runtime`` and " "``Timestamp``." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:72 +#: ../../docs/tutorials/export/exporting_for_macos.rst:76 +msgid "" +"The ``Hardened Runtime`` and ``Timestamp`` options are incompatible with ad-" +"hoc signing and will be ignored." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:78 msgid "Leave ``Identity`` option empty to use ad-hoc signature." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:75 +#: ../../docs/tutorials/export/exporting_for_macos.rst:79 +msgid "" +"This option is visible only when exporting from a computer running macOS." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:82 msgid "Notarization Options" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:80 +#: ../../docs/tutorials/export/exporting_for_macos.rst:87 msgid "Enables automatic upload for notarization." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:82 +#: ../../docs/tutorials/export/exporting_for_macos.rst:89 msgid "Apple ID Name" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:82 +#: ../../docs/tutorials/export/exporting_for_macos.rst:89 msgid "Apple ID account name (email address)" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:84 +#: ../../docs/tutorials/export/exporting_for_macos.rst:91 msgid "Apple ID Password" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:84 +#: ../../docs/tutorials/export/exporting_for_macos.rst:91 msgid "" "Apple ID app-specific password. See `Using app-specific passwords `__ to enable two-factor authentication and " "create app password." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:86 +#: ../../docs/tutorials/export/exporting_for_macos.rst:93 msgid "Apple Team ID" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:86 -msgid "Team ID if your Apple ID belongs to multiple teams" +#: ../../docs/tutorials/export/exporting_for_macos.rst:93 +msgid "Team ID, if your Apple ID belongs to multiple teams" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:89 +#: ../../docs/tutorials/export/exporting_for_macos.rst:96 msgid "" "See `Notarizing macOS Software Before Distribution `__ for more info." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:92 +#: ../../docs/tutorials/export/exporting_for_macos.rst:100 +msgid "" +"Notarization is supported when exporting from a computer running macOS, " +"these options are hidden on other platforms." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_macos.rst:103 msgid "Entitlements" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:95 +#: ../../docs/tutorials/export/exporting_for_macos.rst:106 msgid "Hardened Runtime Entitlements" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:97 +#: ../../docs/tutorials/export/exporting_for_macos.rst:108 msgid "" "Hardened Runtime entitlements manage security options and resource access " "policy. See `Hardened Runtime `__ for more info." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:101 -#: ../../docs/tutorials/export/exporting_for_macos.rst:144 +#: ../../docs/tutorials/export/exporting_for_macos.rst:112 +#: ../../docs/tutorials/export/exporting_for_macos.rst:155 msgid "Entitlement" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:103 -msgid "Allow JIT Code Execution [2]_" +#: ../../docs/tutorials/export/exporting_for_macos.rst:114 +msgid "Allow JIT Code Execution [3]_" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:103 +#: ../../docs/tutorials/export/exporting_for_macos.rst:114 msgid "" "Allows creating writable and executable memory for JIT code. If you are " "using add-ons with dynamic or self-modifying native code, enable them " "according to the add-on documentation." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:105 -msgid "Allow Unsigned Executable Memory [2]_" +#: ../../docs/tutorials/export/exporting_for_macos.rst:116 +msgid "Allow Unsigned Executable Memory [3]_" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:105 +#: ../../docs/tutorials/export/exporting_for_macos.rst:116 msgid "" "Allows creating writable and executable memory without JIT restrictions. If " "you are using add-ons with dynamic or self-modifying native code, enable " "them according to the add-on documentation." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:107 -msgid "Allow DYLD Environment Variables [2]_" +#: ../../docs/tutorials/export/exporting_for_macos.rst:118 +msgid "Allow DYLD Environment Variables [3]_" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:107 +#: ../../docs/tutorials/export/exporting_for_macos.rst:118 msgid "" "Allows app to uss dynamic linker environment variables to inject code. f " "you are using add-ons with dynamic or self-modifying native code, enable " "them according to the add-on documentation." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:109 +#: ../../docs/tutorials/export/exporting_for_macos.rst:120 msgid "Disable Library Validation" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:109 +#: ../../docs/tutorials/export/exporting_for_macos.rst:120 msgid "" "Allows app to load arbitrary libraries and frameworks. Enabled it if you are " "using GDNative add-ons and ad-hoc signature, or want to support user-" "provided external add-ons." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:111 +#: ../../docs/tutorials/export/exporting_for_macos.rst:122 msgid "Audio Input" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:111 +#: ../../docs/tutorials/export/exporting_for_macos.rst:122 msgid "" "Enable if you need to use the microphone or other audio input sources, if " "it's enabled you should also provide usage message in the `privacy/" "microphone_usage_description` option." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:113 +#: ../../docs/tutorials/export/exporting_for_macos.rst:124 msgid "Camera" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:113 +#: ../../docs/tutorials/export/exporting_for_macos.rst:124 msgid "" "Enable if you need to use the camera, if it's enabled you should also " "provide usage message in the `privacy/camera_usage_description` option." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:115 +#: ../../docs/tutorials/export/exporting_for_macos.rst:126 msgid "" "Enable if you need to use location information from Location Services, if " "it's enabled you should also provide usage message in the `privacy/" "location_usage_description` option." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:117 +#: ../../docs/tutorials/export/exporting_for_macos.rst:128 msgid "Address Book" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:117 +#: ../../docs/tutorials/export/exporting_for_macos.rst:128 msgid "" -"[3]_ Enable to allow access contacts in the user's address book, if it's " +"[4]_ Enable to allow access contacts in the user's address book, if it's " "enabled you should also provide usage message in the `privacy/" "address_book_usage_description` option." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:119 +#: ../../docs/tutorials/export/exporting_for_macos.rst:130 msgid "Calendars" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:119 +#: ../../docs/tutorials/export/exporting_for_macos.rst:130 msgid "" -"[3]_ Enable to allow access to the user's calendar, if it's enabled you " +"[4]_ Enable to allow access to the user's calendar, if it's enabled you " "should also provide usage message in the `privacy/" "calendar_usage_description` option." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:121 +#: ../../docs/tutorials/export/exporting_for_macos.rst:132 msgid "Photo Library" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:121 +#: ../../docs/tutorials/export/exporting_for_macos.rst:132 msgid "" -"[3]_ Enable to allow access to the user's Photos library, if it's enabled " +"[4]_ Enable to allow access to the user's Photos library, if it's enabled " "you should also provide usage message in the `privacy/" "photos_library_usage_description` option." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:123 +#: ../../docs/tutorials/export/exporting_for_macos.rst:134 msgid "Apple Events" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:123 -msgid "[3]_ Enable to allow app to send Apple events to other apps." +#: ../../docs/tutorials/export/exporting_for_macos.rst:134 +msgid "[4]_ Enable to allow app to send Apple events to other apps." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:125 +#: ../../docs/tutorials/export/exporting_for_macos.rst:136 msgid "" -"[4]_ You can temporarily enable this entitlement to use native debugger " +"[5]_ You can temporarily enable this entitlement to use native debugger " "(GDB, LLDB) with the exported app. This entitlement should be disabled for " "production export." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:128 +#: ../../docs/tutorials/export/exporting_for_macos.rst:139 msgid "" "The ``Allow JIT Code Execution``, ``Allow Unsigned Executable Memory`` and " "``Allow DYLD Environment Variables`` entitlements are always enabled for the " "Godot Mono exports, and are not visible in the export options." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:129 +#: ../../docs/tutorials/export/exporting_for_macos.rst:140 msgid "" "These features aren't supported by Godot out of the box, enable them only if " "you are using add-ons which require them." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:130 +#: ../../docs/tutorials/export/exporting_for_macos.rst:141 msgid "To notarize an app, you must disable the ``Debugging`` entitlement." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:133 +#: ../../docs/tutorials/export/exporting_for_macos.rst:144 msgid "App Sandbox Entitlement" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:135 +#: ../../docs/tutorials/export/exporting_for_macos.rst:146 msgid "" "The App Sandbox restricts access to user data, networking and devices. " "Sandboxed apps can't access most of the file system, can't use custom file " @@ -35200,114 +36251,114 @@ msgid "" "more info." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:141 +#: ../../docs/tutorials/export/exporting_for_macos.rst:152 msgid "" "To distribute an app through the App Store, you must enable the App Sandbox." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:146 +#: ../../docs/tutorials/export/exporting_for_macos.rst:157 msgid "Enabled" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:146 +#: ../../docs/tutorials/export/exporting_for_macos.rst:157 msgid "Enables App Sandbox." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:148 +#: ../../docs/tutorials/export/exporting_for_macos.rst:159 msgid "Network Server" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:148 +#: ../../docs/tutorials/export/exporting_for_macos.rst:159 msgid "Enable to allow app to listen for incoming network connections." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:150 +#: ../../docs/tutorials/export/exporting_for_macos.rst:161 msgid "Network Client" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:150 +#: ../../docs/tutorials/export/exporting_for_macos.rst:161 msgid "Enable to allow app to establish outgoing network connections." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:152 +#: ../../docs/tutorials/export/exporting_for_macos.rst:163 msgid "Device USB" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:152 +#: ../../docs/tutorials/export/exporting_for_macos.rst:163 msgid "" "Enable to allow app to interact with USB devices. This entitlement is " "required to use wired controllers." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:154 +#: ../../docs/tutorials/export/exporting_for_macos.rst:165 msgid "Device Bluetooth" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:154 +#: ../../docs/tutorials/export/exporting_for_macos.rst:165 msgid "" "Enable to allow app to interact with Bluetooth devices. This entitlement is " "required to use wireless controllers." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:156 -msgid "Files Downloads [5]_" +#: ../../docs/tutorials/export/exporting_for_macos.rst:167 +msgid "Files Downloads [6]_" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:156 +#: ../../docs/tutorials/export/exporting_for_macos.rst:167 msgid "Allows read or write access to the user's \"Downloads\" folder." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:158 -msgid "Files Pictures [5]_" +#: ../../docs/tutorials/export/exporting_for_macos.rst:169 +msgid "Files Pictures [6]_" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:158 +#: ../../docs/tutorials/export/exporting_for_macos.rst:169 msgid "Allows read or write access to the user's \"Pictures\" folder." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:160 -msgid "Files Music [5]_" +#: ../../docs/tutorials/export/exporting_for_macos.rst:171 +msgid "Files Music [6]_" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:160 +#: ../../docs/tutorials/export/exporting_for_macos.rst:171 msgid "Allows read or write access to the user's \"Music\" folder." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:162 -msgid "Files Movies [5]_" +#: ../../docs/tutorials/export/exporting_for_macos.rst:173 +msgid "Files Movies [6]_" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:162 +#: ../../docs/tutorials/export/exporting_for_macos.rst:173 msgid "Allows read or write access to the user's \"Movies\" folder." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:164 -msgid "Files User Selected [5]_" +#: ../../docs/tutorials/export/exporting_for_macos.rst:175 +msgid "Files User Selected [6]_" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:164 +#: ../../docs/tutorials/export/exporting_for_macos.rst:175 msgid "" "Allows read or write access to arbitrary folder. To gain access, a folder " "must be selected from the native file dialog by the user." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:166 +#: ../../docs/tutorials/export/exporting_for_macos.rst:177 msgid "Helper Executable" msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:166 +#: ../../docs/tutorials/export/exporting_for_macos.rst:177 msgid "" "List of helper executables to embedded to the app bundle. Sandboxed app are " "limited to execute only these executable." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:169 +#: ../../docs/tutorials/export/exporting_for_macos.rst:180 msgid "" "You can optionally provide usage messages for various folders in the " "`privacy/*_folder_usage_description` options." msgstr "" -#: ../../docs/tutorials/export/exporting_for_macos.rst:171 +#: ../../docs/tutorials/export/exporting_for_macos.rst:182 msgid "" "You can override default entitlements by selecting custom entitlements file, " "in this case all other entitlement are ignored." @@ -35459,7 +36510,7 @@ msgstr "" #: ../../docs/tutorials/export/running_on_macos.rst:94 msgid "" -"Neither app not executable is signed (relevant for Apple Silicon macs only)" +"Neither app nor executable is signed (relevant for Apple Silicon macs only)" msgstr "" #: ../../docs/tutorials/export/running_on_macos.rst:98 @@ -35624,7 +36675,14 @@ msgstr "" msgid "Changing the file icon" msgstr "" -#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:66 +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:64 +msgid "" +"In Godot 3.5 and later, you can change the file icon without external tools " +"using `godoticon `__. Changing the " +"file icon this way should work for executables containing an embedded PCK." +msgstr "" + +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:71 msgid "" "There are `known issues `__ when changing the application icon in executables that " @@ -35633,20 +36691,20 @@ msgid "" "the Export dialog." msgstr "" -#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:71 +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:76 msgid "" "The file icon is the icon of the executable that you click on to start the " "project." msgstr "" -#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:76 +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:81 msgid "" "Before selecting it in the export options, you will need to install an extra " "tool called **rcedit**. You can download it `here `_." msgstr "" -#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:80 +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:85 msgid "" "After downloading, you need to tell Godot the path to the rcedit executable " "on your computer. Go to **Editor → Editor Settings → Export → Windows**. " @@ -35654,13 +36712,13 @@ msgid "" "the rcedit executable." msgstr "" -#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:88 +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:93 msgid "" "Linux and macOS users will also need to install `WINE `_ to use rcedit." msgstr "" -#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:93 +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:98 msgid "" "You should now have everything in place to change the file icon. To do that, " "you will need to specify the icon when exporting. Go to **Project → " @@ -35668,7 +36726,7 @@ msgid "" "your icon in ICO format in the **Application → Icon** field." msgstr "" -#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:103 +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:108 msgid "" "If rcedit fails to change the icon, you can instead :ref:`compile your own " "Windows export templates ` with the icon changed. " @@ -35677,22 +36735,22 @@ msgid "" "ICO file *before* compiling export templates." msgstr "" -#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:109 +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:114 msgid "" "Once this is done, you can specify your export templates as custom export " "templates in your project's Windows export preset." msgstr "" -#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:113 +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:118 msgid "Testing the result" msgstr "" -#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:115 +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:120 msgid "" "You can now export the project. If it worked correctly, you should see this:" msgstr "" -#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:121 +#: ../../docs/tutorials/export/changing_application_icon_for_windows.rst:126 msgid "" "If your icon isn't showing up properly, on Windows 10, try clearing the icon " "cache. To do so, open the **Run** dialog and enter ``ie4uinit.exe -" @@ -35924,170 +36982,153 @@ msgstr "" #: ../../docs/tutorials/export/exporting_for_ios.rst:28 msgid "" -"The following export options are required. Leaving any blank will cause the " -"exporter to throw an error:" +"The **App Store Team ID** and (Bundle) **Identifier** options in the " +"**Application** category are required. Leaving them blank will cause the " +"exporter to throw an error." msgstr "" #: ../../docs/tutorials/export/exporting_for_ios.rst:31 msgid "" -"In the **Application** category * **App Store Team ID** and (Bundle) " -"**Identifier**" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_ios.rst:33 -msgid "Everything in the **Required Icons** category" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_ios.rst:34 -msgid "Everything in the **Landscape Launch Screens** category" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_ios.rst:35 -msgid "Everything in the **Portrait Launch Screens** category" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_ios.rst:37 -msgid "" "After you click **Export Project**, there are still two important options " "left:" msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:39 +#: ../../docs/tutorials/export/exporting_for_ios.rst:33 msgid "" "**Path** is an empty folder that will contain the exported Xcode project " "files." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:40 +#: ../../docs/tutorials/export/exporting_for_ios.rst:34 msgid "" "**File** will be the name of the Xcode project and several project specific " "files and directories." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:44 +#: ../../docs/tutorials/export/exporting_for_ios.rst:38 msgid "" "This tutorial uses **exported_xcode_project_name**, but you will use your " "project's name. When you see **exported_xcode_project_name** in the " "following steps, replace it with the name you used instead." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:48 +#: ../../docs/tutorials/export/exporting_for_ios.rst:42 msgid "" "Avoid using spaces when you choose your **exported_xcode_project_name** as " "this can lead to corruption in your XCode project file." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:51 +#: ../../docs/tutorials/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:55 +#: ../../docs/tutorials/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:59 +#: ../../docs/tutorials/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:61 +#: ../../docs/tutorials/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:64 +#: ../../docs/tutorials/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:67 +#: ../../docs/tutorials/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:69 +#: ../../docs/tutorials/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:70 +#: ../../docs/tutorials/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:72 +#: ../../docs/tutorials/export/exporting_for_ios.rst:66 msgid "" "**godot_project_to_export** must not be the same as " "**exported_xcode_project_name** to prevent signing issues in Xcode." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:76 +#: ../../docs/tutorials/export/exporting_for_ios.rst:70 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:78 +#: ../../docs/tutorials/export/exporting_for_ios.rst:72 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:79 +#: ../../docs/tutorials/export/exporting_for_ios.rst:73 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:83 +#: ../../docs/tutorials/export/exporting_for_ios.rst:77 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:88 +#: ../../docs/tutorials/export/exporting_for_ios.rst:82 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:89 +#: ../../docs/tutorials/export/exporting_for_ios.rst:83 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:93 +#: ../../docs/tutorials/export/exporting_for_ios.rst:87 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:99 +#: ../../docs/tutorials/export/exporting_for_ios.rst:93 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:103 +#: ../../docs/tutorials/export/exporting_for_ios.rst:97 #: ../../docs/tutorials/platform/ios/plugins_for_ios.rst:4 msgid "Plugins for iOS" msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:105 +#: ../../docs/tutorials/export/exporting_for_ios.rst:99 msgid "" "Special iOS plugins can be used in Godot. Check out the :ref:" "`doc_plugins_for_ios` page." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:109 -#: ../../docs/tutorials/export/exporting_for_android.rst:174 +#: ../../docs/tutorials/export/exporting_for_ios.rst:103 +#: ../../docs/tutorials/export/exporting_for_android.rst:175 msgid "Troubleshooting rendering issues" msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:111 -#: ../../docs/tutorials/export/exporting_for_android.rst:176 +#: ../../docs/tutorials/export/exporting_for_ios.rst:105 +#: ../../docs/tutorials/export/exporting_for_android.rst:177 msgid "" "To improve out-of-the-box performance on mobile devices, Godot automatically " "uses low-end-friendly settings by default on both Android and iOS." msgstr "" -#: ../../docs/tutorials/export/exporting_for_ios.rst:114 -#: ../../docs/tutorials/export/exporting_for_android.rst:179 +#: ../../docs/tutorials/export/exporting_for_ios.rst:108 +#: ../../docs/tutorials/export/exporting_for_android.rst:180 msgid "" "This can cause rendering issues that do not occur when running the project " "on a desktop platform. See :ref:`doc_mobile_rendering_limitations` for more " @@ -36113,89 +37154,89 @@ msgid "" msgstr "" #: ../../docs/tutorials/export/exporting_for_android.rst:17 -msgid "Download the Android SDK" +msgid "Install OpenJDK 11" msgstr "" #: ../../docs/tutorials/export/exporting_for_android.rst:19 +msgid "" +"Download and install `OpenJDK 11 `__." +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_android.rst:22 +msgid "Download the Android SDK" +msgstr "" + +#: ../../docs/tutorials/export/exporting_for_android.rst:24 msgid "Download and install the Android SDK." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:21 +#: ../../docs/tutorials/export/exporting_for_android.rst:26 msgid "" "You can install it using `Android Studio version 4.1 or later `__." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:23 +#: ../../docs/tutorials/export/exporting_for_android.rst:28 msgid "" "Run it once to complete the SDK setup using these `instructions `__." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:24 +#: ../../docs/tutorials/export/exporting_for_android.rst:29 msgid "" "Ensure that the `required packages `__ are installed as well." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:26 +#: ../../docs/tutorials/export/exporting_for_android.rst:31 msgid "Android SDK Platform-Tools version 30.0.5 or later" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:27 +#: ../../docs/tutorials/export/exporting_for_android.rst:32 msgid "Android SDK Build-Tools version 30.0.3" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:28 -msgid "Android SDK Platform 29" +#: ../../docs/tutorials/export/exporting_for_android.rst:33 +msgid "Android SDK Platform 31" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:29 +#: ../../docs/tutorials/export/exporting_for_android.rst:34 msgid "Android SDK Command-line Tools (latest)" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:30 +#: ../../docs/tutorials/export/exporting_for_android.rst:35 msgid "CMake version 3.10.2.4988404" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:31 -msgid "NDK version 21.4.7075529" +#: ../../docs/tutorials/export/exporting_for_android.rst:36 +msgid "NDK version r23c (23.2.8568313)" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:33 +#: ../../docs/tutorials/export/exporting_for_android.rst:38 msgid "" "You can install it using the `command line tools `__." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:35 +#: ../../docs/tutorials/export/exporting_for_android.rst:40 msgid "" "Once the command line tools are installed, run the `sdkmanager `__ command to complete " "the setup process:" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:43 +#: ../../docs/tutorials/export/exporting_for_android.rst:48 msgid "" "If you are using Linux, **do not use an Android SDK provided by your " "distribution's repositories as it will often be outdated**." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:47 -msgid "Install OpenJDK 11" -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_android.rst:49 -msgid "" -"Download and install `OpenJDK 11 `__." -msgstr "" - -#: ../../docs/tutorials/export/exporting_for_android.rst:52 +#: ../../docs/tutorials/export/exporting_for_android.rst:53 msgid "Create a debug.keystore" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:54 +#: ../../docs/tutorials/export/exporting_for_android.rst:55 msgid "" "Android needs a debug keystore file to install to devices and distribute non-" "release APKs. If you have used the SDK before and have built projects, ant " @@ -36204,13 +37245,13 @@ msgid "" "Windows)." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:59 +#: ../../docs/tutorials/export/exporting_for_android.rst:60 msgid "" "If you can't find it or need to generate one, the keytool command from the " "JDK can be used for this purpose::" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:64 +#: ../../docs/tutorials/export/exporting_for_android.rst:65 msgid "" "This will create a ``debug.keystore`` file in your current directory. You " "should move it to a memorable location such as ``%USERPROFILE%\\." @@ -36219,49 +37260,49 @@ msgid "" "org/qa/21349/jdk-android-file-missing>`__." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:67 +#: ../../docs/tutorials/export/exporting_for_android.rst:68 msgid "Setting it up in Godot" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:69 +#: ../../docs/tutorials/export/exporting_for_android.rst:70 msgid "" "Enter the Editor Settings screen. This screen contains the editor settings " "for the user account in the computer (it's independent of the project)." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:75 +#: ../../docs/tutorials/export/exporting_for_android.rst:76 msgid "Scroll down to the section where the Android settings are located:" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:79 +#: ../../docs/tutorials/export/exporting_for_android.rst:80 msgid "In that screen, 2 paths need to be set:" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:81 +#: ../../docs/tutorials/export/exporting_for_android.rst:82 msgid "" "The ``Android Sdk Path`` should be the location where the Android SDK was " "installed. - For example ``%LOCALAPPDATA%\\Android\\Sdk\\`` on Windows or ``/" "Users/$USER/Library/Android/sdk/`` on macOS." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:84 +#: ../../docs/tutorials/export/exporting_for_android.rst:85 msgid "" "The debug ``.keystore`` file - It can be found in the folder where you put " "the ``debug.keystore`` file you created above." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:87 +#: ../../docs/tutorials/export/exporting_for_android.rst:88 msgid "Once that is configured, everything is ready to export to Android!" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:91 +#: ../../docs/tutorials/export/exporting_for_android.rst:92 msgid "" "If you get an error saying *\"Could not install to device.\"*, make sure you " "do not have an application with the same Android package name already " "installed on the device (but signed with a different key)." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:95 +#: ../../docs/tutorials/export/exporting_for_android.rst:96 msgid "" "If you have an application with the same Android package name but a " "different signing key already installed on the device, you **must** remove " @@ -36269,11 +37310,11 @@ msgid "" "Android again." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:101 +#: ../../docs/tutorials/export/exporting_for_android.rst:102 msgid "Providing launcher icons" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:103 +#: ../../docs/tutorials/export/exporting_for_android.rst:104 msgid "" "Launcher icons are used by Android launcher apps to represent your " "application to users. Godot only requires high-resolution icons (for " @@ -36281,17 +37322,17 @@ msgid "" "resolution variants." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:105 +#: ../../docs/tutorials/export/exporting_for_android.rst:106 msgid "There are two types of icons required by Godot:" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:107 +#: ../../docs/tutorials/export/exporting_for_android.rst:108 msgid "" "**Main Icon:** The \"classic\" icon. This will be used on all Android " "versions up to Android 8 (Oreo), exclusive. Must be at least 192×192 px." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:108 +#: ../../docs/tutorials/export/exporting_for_android.rst:109 msgid "" "**Adaptive Icons:** Starting from Android 8 (inclusive), `Adaptive Icons " " Project icon -> Default Godot main icon." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:117 +#: ../../docs/tutorials/export/exporting_for_android.rst:118 msgid "" "**Adaptive Icon Foreground:** Provided foreground icon -> Provided main icon " "-> Project icon -> Default Godot foreground icon." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:118 +#: ../../docs/tutorials/export/exporting_for_android.rst:119 msgid "" "**Adaptive Icon Background:** Provided background icon -> Default Godot " "background icon." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:120 +#: ../../docs/tutorials/export/exporting_for_android.rst:121 msgid "" "It's highly recommended to provide all the requested icons with their " "specified resolutions. This way, your application will look great on all " "Android devices and versions." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:124 +#: ../../docs/tutorials/export/exporting_for_android.rst:125 msgid "Exporting for Google Play Store" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:126 +#: ../../docs/tutorials/export/exporting_for_android.rst:127 msgid "" "Uploading an APK to Google's Play Store requires you to sign using a non-" "debug keystore file; such file can be generated like this:" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:133 +#: ../../docs/tutorials/export/exporting_for_android.rst:134 msgid "" "This keystore and key are used to verify your developer identity, remember " "the password and keep it in a safe place! Use Google's Android Developer " @@ -36364,41 +37405,41 @@ msgid "" "studio/publish/app-signing>`__." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:136 +#: ../../docs/tutorials/export/exporting_for_android.rst:137 msgid "Now fill in the following forms in your Android Export Presets:" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:140 +#: ../../docs/tutorials/export/exporting_for_android.rst:141 msgid "**Release:** Enter the path to the keystore file you just generated." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:141 +#: ../../docs/tutorials/export/exporting_for_android.rst:142 msgid "**Release User:** Replace with the key alias." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:142 +#: ../../docs/tutorials/export/exporting_for_android.rst:143 msgid "" "**Release Password:** Key password. Note that the keystore password and the " "key password currently have to be the same." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:144 +#: ../../docs/tutorials/export/exporting_for_android.rst:145 msgid "" "**Your export_presets.cfg file now contains sensitive information.** If you " "use a version control system, you should remove it from public repositories " "and add it to your ``.gitignore`` file or equivalent." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:148 +#: ../../docs/tutorials/export/exporting_for_android.rst:149 msgid "" "Don't forget to uncheck the **Export With Debug** checkbox while exporting." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:153 +#: ../../docs/tutorials/export/exporting_for_android.rst:154 msgid "Optimizing the APK size" msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:155 +#: ../../docs/tutorials/export/exporting_for_android.rst:156 msgid "" "By default, the APK will contain native libraries for both ARMv7 and ARMv8 " "architectures. This increases its size significantly. To create a smaller " @@ -36408,7 +37449,7 @@ msgid "" "run on ARMv8 devices, but the opposite is not true." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:162 +#: ../../docs/tutorials/export/exporting_for_android.rst:163 msgid "" "Since August 2019, Google Play requires all applications to be available in " "64-bit form. This means you cannot upload an APK that contains *just* an " @@ -36419,7 +37460,7 @@ msgid "" "devices in use today." msgstr "" -#: ../../docs/tutorials/export/exporting_for_android.rst:169 +#: ../../docs/tutorials/export/exporting_for_android.rst:170 msgid "" "You can optimize the size further by compiling an Android export template " "with only the features you need. See :ref:`doc_optimizing_for_size` for more " @@ -37014,7 +38055,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/export/exporting_for_dedicated_servers.rst:4 -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:460 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:473 msgid "Exporting for dedicated servers" msgstr "" @@ -37302,6 +38343,40 @@ msgstr "" msgid "Click the button to export to the desired platform in one click." msgstr "" +#: ../../docs/tutorials/export/one-click_deploy.rst:68 +msgid "" +"If you can't see the device in the list of devices when running the ``adb " +"devices`` command in a terminal, it will not be visible by Godot either. To " +"resolve this:" +msgstr "" + +#: ../../docs/tutorials/export/one-click_deploy.rst:72 +msgid "" +"Check if USB debugging is enabled *and authorized on the device*. Try " +"unlocking your device and accepting the authorization prompt if you see any. " +"If you can't see this prompt, running ``adb devices`` on your PC should make " +"the authorization prompt appear on the device." +msgstr "" + +#: ../../docs/tutorials/export/one-click_deploy.rst:76 +msgid "" +"Try `revoking the debugging authorization `__ in the device's " +"developer settings, then follow the steps again." +msgstr "" + +#: ../../docs/tutorials/export/one-click_deploy.rst:78 +msgid "" +"Try using USB debugging instead of wireless debugging or vice versa. " +"Sometimes, one of those can work better than the other." +msgstr "" + +#: ../../docs/tutorials/export/one-click_deploy.rst:80 +msgid "" +"On Linux, you may be missing the required `udev rules `__ for your device to be recognized." +msgstr "" + #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -37444,10 +38519,6 @@ msgid "" "is run (either from the editor or when exported)." msgstr "" -#: ../../docs/tutorials/i18n/internationalizing_games.rst:120 -msgid "..image:: img/locale_test.png" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:122 msgid "" "Keep in mind that since this is a project setting, it will show up in " @@ -37488,8 +38559,8 @@ msgstr "" #: ../../docs/tutorials/i18n/localization_using_gettext.rst:6 msgid "" "In addition to :ref:`doc_importing_translations` in CSV format, Godot also " -"supports loading translation files written in the GNU gettext (``.po``) " -"format." +"supports loading translation files written in the GNU gettext format (text-" +"based ``.po`` and compiled ``.mo`` since Godot 3.5)." msgstr "" #: ../../docs/tutorials/i18n/localization_using_gettext.rst:10 @@ -37542,58 +38613,58 @@ msgstr "" #: ../../docs/tutorials/i18n/localization_using_gettext.rst:33 msgid "" "People who maintain localization files will have to install gettext tools on " -"their system. However, as Godot doesn't use compiled message object files " -"(``.mo``), translators can test their work without having to install gettext " +"their system. However, as Godot supports using text-based message files (``." +"po``), translators can test their work without having to install gettext " "tools." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:39 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:38 msgid "Caveats" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:41 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:40 msgid "" "As Godot uses its own PO file parser behind the scenes (which is more " "limited than the reference GNU gettext implementation), some features such " "as pluralization aren't supported." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:46 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:45 msgid "Installing gettext tools" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:48 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:47 msgid "" "The command line gettext tools are required to perform maintenance " "operations, such as updating message files. Therefore, it's strongly " "recommended to install them." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:52 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:51 msgid "" "**Windows:** Download an installer from `this page `_. Any architecture and binary type " "(shared or static) works; if in doubt, choose the 64-bit static installer." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:56 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:55 msgid "" "**macOS:** Install gettext either using `Homebrew `_ with " "the ``brew install gettext`` command, or using `MacPorts `_ with the ``sudo port install gettext`` command." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:60 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:59 msgid "" "**Linux:** On most distributions, install the ``gettext`` package from your " "distribution's package manager." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:64 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:63 msgid "Creating the PO template (POT) manually" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:66 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:65 msgid "" "Godot currently doesn't support extracting source strings using " "``xgettext``, so the ``.pot`` file must be created manually. This file can " @@ -37601,52 +38672,52 @@ msgid "" "in a subdirectory, as each locale will be defined in its own file." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:71 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:70 msgid "" "Create a directory named `locale` in the project directory. In this " "directory, save a file named ``messages.pot`` with the following contents:" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:83 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:82 msgid "" "Messages in gettext are made of ``msgid`` and ``msgstr`` pairs. ``msgid`` is " "the source string (usually in English), ``msgstr`` will be the translated " "string." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:87 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:86 msgid "" "The ``msgstr`` value in PO template files (``.pot``) should **always** be " "empty. Localization will be done in the generated ``.po`` files instead." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:91 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:90 msgid "Creating the PO template (POT) using pybabel" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:93 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:92 msgid "" "The Python tool pybabel has support for Godot and can be used to " "automatically create and update the POT file from your scene files and " "scripts." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:96 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:95 msgid "After installing ``babel`` and ``babel-godot``, for example using pip:" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:102 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:101 msgid "" "Write a mapping file (for example ``babelrc``) which will indicate which " "files pybabel needs to process (note that we process GDScript as Python, " "which is generally sufficient):" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:114 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:113 msgid "You can then run pybabel like so:" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:120 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:119 msgid "" "Use the ``-k`` option to specify what needs to be extracted. In this case, " "arguments to :ref:`tr() ` will be translated, as " @@ -37654,53 +38725,53 @@ msgid "" "LineEdit's \"placeholder_text\" property." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:126 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:125 msgid "Creating a messages file from a PO template" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:128 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:127 msgid "" "The ``msginit`` command is used to turn a PO template into a messages file. " "For instance, to create a French localization file, use the following " "command while in the ``locale`` directory:" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:136 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:135 msgid "" "The command above will create a file named ``fr.po`` in the same directory " "as the PO template." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:139 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:138 msgid "" "Alternatively, you can do that graphically using Poedit, or by uploading the " "POT file to your web platform of choice." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:143 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:142 msgid "Loading a messages file in Godot" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:145 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:144 msgid "" "To register a messages file as a translation in a project, open the " "**Project Settings**, then go to the **Localization** tab. In " -"**Translations**, click **Add…** then choose the ``.po`` file in the file " -"dialog. The locale will be inferred from the ``\"Language: \\n\"`` " -"property in the messages file." +"**Translations**, click **Add…** then choose the ``.po`` or ``.mo`` file in " +"the file dialog. The locale will be inferred from the ``\"Language: " +"\\n\"`` property in the messages file." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:151 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:150 msgid "" "See :ref:`doc_internationalizing_games` for more information on importing " "and testing translations in Godot." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:155 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:154 msgid "Updating message files to follow the PO template" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:157 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:156 msgid "" "After updating the PO template, you will have to update message files so " "that they contain new strings, while removing strings that are no longer " @@ -37708,13 +38779,13 @@ msgid "" "``msgmerge`` tool:" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:167 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:166 msgid "" "If you want to keep a backup of the original message file (which would be " "saved as ``fr.po~`` in this example), remove the ``--backup=none`` argument." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:172 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:171 msgid "" "After running ``msgmerge``, strings which were modified in the source " "language will have a \"fuzzy\" comment added before them in the ``.po`` " @@ -37723,28 +38794,63 @@ msgid "" "until it's updated." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:177 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:176 msgid "" "Strings with \"fuzzy\" comments will **not** be read by Godot until the " "translation is updated and the \"fuzzy\" comment is removed." msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:181 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:180 msgid "Checking the validity of a PO file or template" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:183 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:182 msgid "" "It is possible to check whether a gettext file's syntax is valid by running " "the command below:" msgstr "" -#: ../../docs/tutorials/i18n/localization_using_gettext.rst:190 +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:189 msgid "" "If there are syntax errors or warnings, they will be displayed in the " "console. Otherwise, ``msgfmt`` won't output anything." msgstr "" +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:193 +msgid "Using binary MO files (useful for large projects only)" +msgstr "" + +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:195 +msgid "" +"For large projects with several thousands of strings to translate or more, " +"it can be worth it to use binary (compiled) MO message files instead of text-" +"based PO files. Binary MO files are smaller and faster to read than the " +"equivalent PO files." +msgstr "" + +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:200 +msgid "You can generate a MO file with the command below:" +msgstr "" + +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:206 +msgid "" +"If the PO file is valid, this command will create a ``fr.mo`` file besides " +"the PO file. This MO file can then be loaded in Godot as described below." +msgstr "" + +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:209 +msgid "" +"The original PO file should be kept in version control so you can update " +"your translation in the future. In case you lose the original PO file and " +"wish to decompile a MO file into a text-based PO file, you can do so with:" +msgstr "" + +#: ../../docs/tutorials/i18n/localization_using_gettext.rst:217 +msgid "" +"The decompiled file will not include comments or fuzzy strings, as these are " +"never compiled in the MO file in the first place." +msgstr "" + #: ../../docs/tutorials/i18n/locales.rst:4 msgid "Locales" msgstr "" @@ -41818,8 +42924,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:187 -#: ../../docs/tutorials/scripting/pausing_games.rst:87 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:200 msgid "Example" msgstr "" @@ -41955,7 +43060,7 @@ msgstr "" #: ../../docs/tutorials/io/background_loading.rst:272 #: ../../docs/tutorials/platform/ios/plugins_for_ios.rst:313 #: ../../docs/tutorials/platform/ios/plugins_for_ios.rst:360 -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:31 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:41 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:71 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:92 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:154 @@ -41982,7 +43087,8 @@ msgstr "" msgid "" "This page explains how file paths work inside Godot projects. You will learn " "how to access paths in your projects using the ``res://`` and ``user://`` " -"notations and where Godot stores user files on your hard-drive." +"notations, and where Godot stores project and editor files on your and your " +"users' systems." msgstr "" #: ../../docs/tutorials/io/data_paths.rst:11 @@ -41991,28 +43097,43 @@ msgstr "" #: ../../docs/tutorials/io/data_paths.rst:13 msgid "" -"To make supporting multiple platforms easier, Godot only accepts UNIX-style " -"path separators (``/``). These work on all platforms, **including Windows**." +"To make supporting multiple platforms easier, Godot uses **UNIX-style path " +"separators** (forward slash ``/``). These work on all platforms, **including " +"Windows**." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:16 +#: ../../docs/tutorials/io/data_paths.rst:17 msgid "" -"Instead of writing paths like ``C:\\Projects``, in Godot, you should write " -"``C:/Projects``." +"Instead of writing paths like ``C:\\Projects\\Game``, in Godot, you should " +"write ``C:/Projects/Game``." msgstr "" #: ../../docs/tutorials/io/data_paths.rst:20 -msgid "Accessing files in the project folder" +msgid "" +"Windows-style path separators (backward slash ``\\``) are also supported in " +"some path-related methods, but they need to be doubled (``\\\\``), as ``\\`` " +"is normally used as an escape for characters with a special meaning." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:22 +#: ../../docs/tutorials/io/data_paths.rst:24 +msgid "" +"This makes it possible to work with paths returned by other Windows " +"applications. We still recommend using only forward slashes in your own code " +"to guarantee that everything will work as intended." +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:29 +msgid "Accessing files in the project folder (``res://``)" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:31 msgid "" "Godot considers that a project exists in any folder that contains a " "``project.godot`` text file, even if the file is empty. The folder that " "contains this file is your project's root folder." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:26 +#: ../../docs/tutorials/io/data_paths.rst:35 msgid "" "You can access any file relative to it by writing paths starting with " "``res://``, which stands for resources. For example, you can access an image " @@ -42020,11 +43141,11 @@ msgid "" "following path: ``res://character.png``." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:32 -msgid "Accessing persistent user data" +#: ../../docs/tutorials/io/data_paths.rst:41 +msgid "Accessing persistent user data (``user://``)" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:34 +#: ../../docs/tutorials/io/data_paths.rst:43 msgid "" "To store persistent data files, like the player's save or settings, you want " "to use ``user://`` instead of ``res://`` as your path's prefix. This is " @@ -42032,143 +43153,211 @@ msgid "" "read-only." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:38 +#: ../../docs/tutorials/io/data_paths.rst:47 msgid "" "The ``user://`` prefix points to a different directory on the user's device. " -"Unlike ``res://``, the directory pointed at by ``user://`` is *guaranteed* " -"to be writable to, even in an exported project." +"Unlike ``res://``, the directory pointed at by ``user://`` is created " +"automatically and *guaranteed* to be writable to, even in an exported " +"project." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:42 +#: ../../docs/tutorials/io/data_paths.rst:51 +msgid "" +"The location of the ``user://`` folder depends on what is configured in the " +"Project Settings:" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:54 +msgid "" +"By default, the ``user://`` folder is created within Godot's :ref:`editor " +"data path ` in the ``app_userdata/" +"[project_name]`` folder. This is the default so that prototypes and test " +"projects stay self-contained within Godot's data folder." +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:58 +msgid "" +"If :ref:`application/config/use_custom_user_dir " +"` is " +"enabled in the Project Settings, the ``user://`` folder is created **next " +"to** Godot's editor data path, i.e. in the standard location for " +"applications data." +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:63 +msgid "" +"By default, the folder name will be inferred from the project name, but it " +"can be further customized with :ref:`application/config/custom_user_dir_name " +"`. " +"This path can contain path separators, so you can use it e.g. to group " +"projects of a given studio with a ``Studio Name/Game Name`` structure." +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:69 msgid "On desktop platforms, the actual directory paths for ``user://`` are:" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:47 -#: ../../docs/tutorials/io/data_paths.rst:75 -msgid "User data" +#: ../../docs/tutorials/io/data_paths.rst:74 +msgid "Default" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:47 -#: ../../docs/tutorials/io/data_paths.rst:75 +#: ../../docs/tutorials/io/data_paths.rst:0 msgid "Windows: ``%APPDATA%\\Godot\\app_userdata\\[project_name]``" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:48 +#: ../../docs/tutorials/io/data_paths.rst:0 msgid "" "macOS: ``~/Library/Application Support/Godot/app_userdata/[project_name]``" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:49 +#: ../../docs/tutorials/io/data_paths.rst:0 msgid "Linux: ``~/.local/share/godot/app_userdata/[project_name]``" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:51 -#: ../../docs/tutorials/io/data_paths.rst:79 -msgid "User data (when ``use_custom_user_dir`` project setting is ``true``)" +#: ../../docs/tutorials/io/data_paths.rst:78 +msgid "Custom dir" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:51 -#: ../../docs/tutorials/io/data_paths.rst:79 +#: ../../docs/tutorials/io/data_paths.rst:0 msgid "Windows: ``%APPDATA%\\[project_name]``" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:52 -#: ../../docs/tutorials/io/data_paths.rst:80 +#: ../../docs/tutorials/io/data_paths.rst:0 msgid "macOS: ``~/Library/Application Support/[project_name]``" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:53 -#: ../../docs/tutorials/io/data_paths.rst:81 +#: ../../docs/tutorials/io/data_paths.rst:0 msgid "Linux: ``~/.local/share/[project_name]``" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:56 +#: ../../docs/tutorials/io/data_paths.rst:82 +msgid "Custom dir and name" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:0 +msgid "Windows: ``%APPDATA%\\[custom_user_dir_name]``" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:0 +msgid "macOS: ``~/Library/Application Support/[custom_user_dir_name]``" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:0 +msgid "Linux: ``~/.local/share/[custom_user_dir_name]``" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:87 msgid "" "``[project_name]`` is based on the application name defined in the Project " "Settings, but you can override it on a per-platform basis using :ref:" "`feature tags `." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:59 +#: ../../docs/tutorials/io/data_paths.rst:90 msgid "" "On mobile platforms, this path is unique to the project and is not " "accessible by other applications for security reasons." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:62 +#: ../../docs/tutorials/io/data_paths.rst:93 msgid "" "On HTML5 exports, ``user://`` will refer to a virtual filesystem stored on " "the device via IndexedDB. (Interaction with the main filesystem can still be " "performed through the :ref:`JavaScript ` singleton.)" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:67 +#: ../../docs/tutorials/io/data_paths.rst:98 +msgid "Converting paths to absolute paths or \"local\" paths" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:100 +msgid "" +"You can use :ref:`ProjectSettings.globalize_path() " +"` to convert a \"local\" path " +"like ``res://path/to/file.txt`` to an absolute OS path. For example, :ref:" +"`ProjectSettings.globalize_path() " +"` can be used to open \"local\" " +"paths in the OS file manager using :ref:`OS.shell_open() " +"` since it only accepts native OS paths." +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:107 +msgid "" +"To convert an absolute OS path to a \"local\" path starting with ``res://`` " +"or ``user://``, use :ref:`ProjectSettings.localize_path() " +"`. This only works for absolute " +"paths that point to files or folders in your project's root or ``user://`` " +"folders." +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:115 msgid "Editor data paths" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:69 +#: ../../docs/tutorials/io/data_paths.rst:117 msgid "" -"The editor uses different paths for user data, user settings, and cache, " +"The editor uses different paths for editor data, editor settings, and cache, " "depending on the platform. By default, these paths are:" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:76 -msgid "macOS: ``~/Library/Application Support/Godot/[project_name]``" +#: ../../docs/tutorials/io/data_paths.rst:123 +msgid "Editor data" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:77 -msgid "Linux: ``~/.local/share/godot/[project_name]``" -msgstr "" - -#: ../../docs/tutorials/io/data_paths.rst:83 -msgid "User settings" -msgstr "" - -#: ../../docs/tutorials/io/data_paths.rst:83 +#: ../../docs/tutorials/io/data_paths.rst:0 msgid "Windows: ``%APPDATA%\\Godot\\``" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:84 +#: ../../docs/tutorials/io/data_paths.rst:0 msgid "macOS: ``~/Library/Application Support/Godot/``" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:85 +#: ../../docs/tutorials/io/data_paths.rst:0 +msgid "Linux: ``~/.local/share/godot/``" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:127 +msgid "Editor settings" +msgstr "" + +#: ../../docs/tutorials/io/data_paths.rst:0 msgid "Linux: ``~/.config/godot/``" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:87 +#: ../../docs/tutorials/io/data_paths.rst:131 msgid "Cache" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:87 +#: ../../docs/tutorials/io/data_paths.rst:0 msgid "Windows: ``%TEMP%\\Godot\\``" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:88 +#: ../../docs/tutorials/io/data_paths.rst:0 msgid "macOS: ``~/Library/Caches/Godot/``" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:89 +#: ../../docs/tutorials/io/data_paths.rst:0 msgid "Linux: ``~/.cache/godot/``" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:92 -msgid "**User data** contains export templates and project-specific data." +#: ../../docs/tutorials/io/data_paths.rst:136 +msgid "**Editor data** contains export templates and project-specific data." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:93 +#: ../../docs/tutorials/io/data_paths.rst:137 msgid "" -"**User settings** contains editor settings, text editor themes, script " -"templates, etc." +"**Editor settings** contains the main editor settings configuration file as " +"well as various other user-specific customizations (editor layouts, feature " +"profiles, script templates, etc.)." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:95 +#: ../../docs/tutorials/io/data_paths.rst:140 msgid "" -"**Cache** contains temporary data. It can safely be removed when Godot is " -"closed." +"**Cache** contains data generated by the editor, or stored temporarily. It " +"can safely be removed when Godot is closed." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:98 +#: ../../docs/tutorials/io/data_paths.rst:143 msgid "" "Godot complies with the `XDG Base Directory Specification `__ on " @@ -42176,33 +43365,34 @@ msgid "" "specification to change the editor and project data paths." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:103 +#: ../../docs/tutorials/io/data_paths.rst:148 msgid "" "If you use `Godot packaged as a Flatpak `__, the editor data paths will be located in " "subfolders in ``~/.var/app/org.godotengine.Godot/``." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:111 +#: ../../docs/tutorials/io/data_paths.rst:156 msgid "Self-contained mode" msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:113 +#: ../../docs/tutorials/io/data_paths.rst:158 msgid "" "If you create a file called ``._sc_`` or ``_sc_`` in the same directory as " -"the editor binary, Godot will enable *self-contained mode*. This mode makes " -"Godot write all user data to a directory named ``editor_data/`` in the same " -"directory as the editor binary. You can use it to create a portable " +"the editor binary (or in `MacOS/Contents/` for a macOS editor .app bundle), " +"Godot will enable *self-contained mode*. This mode makes Godot write all " +"editor data, settings, and cache to a directory named ``editor_data/`` in " +"the same directory as the editor binary. You can use it to create a portable " "installation of the editor." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:119 +#: ../../docs/tutorials/io/data_paths.rst:165 msgid "" "The `Steam release of Godot `__ " "uses self-contained mode by default." msgstr "" -#: ../../docs/tutorials/io/data_paths.rst:124 +#: ../../docs/tutorials/io/data_paths.rst:170 msgid "" "Self-contained mode is not supported in exported projects yet. To read and " "write files relative to the executable path, use :ref:`OS." @@ -42367,40 +43557,19 @@ msgid "Value" msgstr "" #: ../../docs/tutorials/io/binary_serialization_api.rst:31 -msgid "0" -msgstr "" - -#: ../../docs/tutorials/io/binary_serialization_api.rst:31 -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:341 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:346 msgid "null" msgstr "" -#: ../../docs/tutorials/io/binary_serialization_api.rst:33 -#: ../../docs/tutorials/io/binary_serialization_api.rst:419 -#: ../../docs/tutorials/platform/mobile_rendering_limitations.rst:49 -msgid "1" -msgstr "" - #: ../../docs/tutorials/io/binary_serialization_api.rst:33 #: ../../docs/tutorials/shaders/converting_glsl_to_godot_shaders.rst:110 msgid "bool" msgstr "" -#: ../../docs/tutorials/io/binary_serialization_api.rst:35 -#: ../../docs/tutorials/platform/mobile_rendering_limitations.rst:49 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:306 -msgid "2" -msgstr "" - #: ../../docs/tutorials/io/binary_serialization_api.rst:35 msgid "integer" msgstr "" -#: ../../docs/tutorials/io/binary_serialization_api.rst:37 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:308 -msgid "3" -msgstr "" - #: ../../docs/tutorials/io/binary_serialization_api.rst:37 #: ../../docs/tutorials/shaders/converting_glsl_to_godot_shaders.rst:106 #: ../../docs/tutorials/shaders/converting_glsl_to_godot_shaders.rst:179 @@ -42411,143 +43580,18 @@ msgstr "" msgid "float" msgstr "" -#: ../../docs/tutorials/io/binary_serialization_api.rst:39 -#: ../../docs/tutorials/io/binary_serialization_api.rst:104 -#: ../../docs/tutorials/io/binary_serialization_api.rst:115 -#: ../../docs/tutorials/io/binary_serialization_api.rst:124 -#: ../../docs/tutorials/io/binary_serialization_api.rst:135 -#: ../../docs/tutorials/io/binary_serialization_api.rst:144 -#: ../../docs/tutorials/io/binary_serialization_api.rst:153 -#: ../../docs/tutorials/io/binary_serialization_api.rst:166 -#: ../../docs/tutorials/io/binary_serialization_api.rst:168 -#: ../../docs/tutorials/io/binary_serialization_api.rst:177 -#: ../../docs/tutorials/io/binary_serialization_api.rst:179 -#: ../../docs/tutorials/io/binary_serialization_api.rst:181 -#: ../../docs/tutorials/io/binary_serialization_api.rst:183 -#: ../../docs/tutorials/io/binary_serialization_api.rst:192 -#: ../../docs/tutorials/io/binary_serialization_api.rst:194 -#: ../../docs/tutorials/io/binary_serialization_api.rst:196 -#: ../../docs/tutorials/io/binary_serialization_api.rst:205 -#: ../../docs/tutorials/io/binary_serialization_api.rst:207 -#: ../../docs/tutorials/io/binary_serialization_api.rst:209 -#: ../../docs/tutorials/io/binary_serialization_api.rst:211 -#: ../../docs/tutorials/io/binary_serialization_api.rst:213 -#: ../../docs/tutorials/io/binary_serialization_api.rst:215 -#: ../../docs/tutorials/io/binary_serialization_api.rst:224 -#: ../../docs/tutorials/io/binary_serialization_api.rst:226 -#: ../../docs/tutorials/io/binary_serialization_api.rst:228 -#: ../../docs/tutorials/io/binary_serialization_api.rst:230 -#: ../../docs/tutorials/io/binary_serialization_api.rst:239 -#: ../../docs/tutorials/io/binary_serialization_api.rst:241 -#: ../../docs/tutorials/io/binary_serialization_api.rst:243 -#: ../../docs/tutorials/io/binary_serialization_api.rst:245 -#: ../../docs/tutorials/io/binary_serialization_api.rst:254 -#: ../../docs/tutorials/io/binary_serialization_api.rst:256 -#: ../../docs/tutorials/io/binary_serialization_api.rst:258 -#: ../../docs/tutorials/io/binary_serialization_api.rst:260 -#: ../../docs/tutorials/io/binary_serialization_api.rst:262 -#: ../../docs/tutorials/io/binary_serialization_api.rst:264 -#: ../../docs/tutorials/io/binary_serialization_api.rst:273 -#: ../../docs/tutorials/io/binary_serialization_api.rst:275 -#: ../../docs/tutorials/io/binary_serialization_api.rst:277 -#: ../../docs/tutorials/io/binary_serialization_api.rst:279 -#: ../../docs/tutorials/io/binary_serialization_api.rst:281 -#: ../../docs/tutorials/io/binary_serialization_api.rst:283 -#: ../../docs/tutorials/io/binary_serialization_api.rst:285 -#: ../../docs/tutorials/io/binary_serialization_api.rst:287 -#: ../../docs/tutorials/io/binary_serialization_api.rst:289 -#: ../../docs/tutorials/io/binary_serialization_api.rst:298 -#: ../../docs/tutorials/io/binary_serialization_api.rst:300 -#: ../../docs/tutorials/io/binary_serialization_api.rst:302 -#: ../../docs/tutorials/io/binary_serialization_api.rst:304 -#: ../../docs/tutorials/io/binary_serialization_api.rst:306 -#: ../../docs/tutorials/io/binary_serialization_api.rst:308 -#: ../../docs/tutorials/io/binary_serialization_api.rst:310 -#: ../../docs/tutorials/io/binary_serialization_api.rst:312 -#: ../../docs/tutorials/io/binary_serialization_api.rst:314 -#: ../../docs/tutorials/io/binary_serialization_api.rst:316 -#: ../../docs/tutorials/io/binary_serialization_api.rst:318 -#: ../../docs/tutorials/io/binary_serialization_api.rst:320 -#: ../../docs/tutorials/io/binary_serialization_api.rst:329 -#: ../../docs/tutorials/io/binary_serialization_api.rst:331 -#: ../../docs/tutorials/io/binary_serialization_api.rst:333 -#: ../../docs/tutorials/io/binary_serialization_api.rst:335 -#: ../../docs/tutorials/io/binary_serialization_api.rst:344 -#: ../../docs/tutorials/io/binary_serialization_api.rst:364 -#: ../../docs/tutorials/io/binary_serialization_api.rst:366 -#: ../../docs/tutorials/io/binary_serialization_api.rst:374 -#: ../../docs/tutorials/io/binary_serialization_api.rst:393 -#: ../../docs/tutorials/io/binary_serialization_api.rst:405 -#: ../../docs/tutorials/io/binary_serialization_api.rst:417 -#: ../../docs/tutorials/io/binary_serialization_api.rst:430 -#: ../../docs/tutorials/io/binary_serialization_api.rst:432 -#: ../../docs/tutorials/io/binary_serialization_api.rst:441 -#: ../../docs/tutorials/io/binary_serialization_api.rst:443 -#: ../../docs/tutorials/io/binary_serialization_api.rst:452 -#: ../../docs/tutorials/io/binary_serialization_api.rst:460 -#: ../../docs/tutorials/io/binary_serialization_api.rst:473 -#: ../../docs/tutorials/io/binary_serialization_api.rst:475 -#: ../../docs/tutorials/io/binary_serialization_api.rst:477 -#: ../../docs/tutorials/io/binary_serialization_api.rst:486 -#: ../../docs/tutorials/io/binary_serialization_api.rst:488 -#: ../../docs/tutorials/io/binary_serialization_api.rst:490 -#: ../../docs/tutorials/io/binary_serialization_api.rst:492 -#: ../../docs/tutorials/io/binary_serialization_api.rst:501 -#: ../../docs/tutorials/io/binary_serialization_api.rst:503 -#: ../../docs/tutorials/io/binary_serialization_api.rst:505 -#: ../../docs/tutorials/io/binary_serialization_api.rst:507 -#: ../../docs/tutorials/io/binary_serialization_api.rst:509 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:310 -msgid "4" -msgstr "" - -#: ../../docs/tutorials/io/binary_serialization_api.rst:41 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:312 -msgid "5" -msgstr "" - #: ../../docs/tutorials/io/binary_serialization_api.rst:41 msgid "vector2" msgstr "" -#: ../../docs/tutorials/io/binary_serialization_api.rst:43 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:314 -msgid "6" -msgstr "" - #: ../../docs/tutorials/io/binary_serialization_api.rst:43 msgid "rect2" msgstr "" -#: ../../docs/tutorials/io/binary_serialization_api.rst:45 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:316 -msgid "7" -msgstr "" - #: ../../docs/tutorials/io/binary_serialization_api.rst:45 msgid "vector3" msgstr "" -#: ../../docs/tutorials/io/binary_serialization_api.rst:47 -#: ../../docs/tutorials/io/binary_serialization_api.rst:124 -#: ../../docs/tutorials/io/binary_serialization_api.rst:144 -#: ../../docs/tutorials/io/binary_serialization_api.rst:155 -#: ../../docs/tutorials/io/binary_serialization_api.rst:168 -#: ../../docs/tutorials/io/binary_serialization_api.rst:179 -#: ../../docs/tutorials/io/binary_serialization_api.rst:194 -#: ../../docs/tutorials/io/binary_serialization_api.rst:207 -#: ../../docs/tutorials/io/binary_serialization_api.rst:226 -#: ../../docs/tutorials/io/binary_serialization_api.rst:241 -#: ../../docs/tutorials/io/binary_serialization_api.rst:256 -#: ../../docs/tutorials/io/binary_serialization_api.rst:275 -#: ../../docs/tutorials/io/binary_serialization_api.rst:300 -#: ../../docs/tutorials/io/binary_serialization_api.rst:331 -#: ../../docs/tutorials/io/binary_serialization_api.rst:353 -#: ../../docs/tutorials/io/binary_serialization_api.rst:366 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:318 -msgid "8" -msgstr "" - #: ../../docs/tutorials/io/binary_serialization_api.rst:47 msgid "transform2d" msgstr "" @@ -43664,7 +44708,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/math/vector_math.rst:251 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:753 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:754 msgid "Dot product" msgstr "" @@ -43681,7 +44725,7 @@ msgid "The formula for dot product takes two common forms:" msgstr "" #: ../../docs/tutorials/math/vector_math.rst:262 -#: ../../docs/tutorials/scripting/singletons_autoload.rst:262 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:273 msgid "and" msgstr "" @@ -43731,7 +44775,7 @@ msgid "In code it would look like this:" msgstr "" #: ../../docs/tutorials/math/vector_math.rst:324 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:755 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:756 msgid "Cross product" msgstr "" @@ -45383,64 +46427,155 @@ msgstr "" #: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:9 msgid "" -"Godot provides two nodes which can be used to achieve real time navigation " -"in a 3D environment, :ref:`Navigation ` and :ref:" -"`NavigationMeshInstance `." +"Pathfinding in a 3D environment is crucial for many games, it's commonly how " +"non directly controlled characters or entities find their way around an " +"environment. Godot provides several nodes for this purpose:" msgstr "" -#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:12 -msgid "" -"A navigation mesh instance is used to hold a :ref:`NavigationMesh " -"`, which defines what areas in a scene can be " -"navigated to. The :ref:`Navigation ` node is then used for " -"pathfinding with the navigation mesh." +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:13 +msgid ":ref:`Navigation` (deprecated)" msgstr "" -#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:17 -msgid "Setting up navigation" +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:14 +msgid ":ref:`NavigationMeshInstance`" +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:15 +msgid ":ref:`NavigationAgent`" +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:16 +msgid ":ref:`NavigationObstacle`" msgstr "" #: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:19 +msgid "The map and navigation regions" +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:21 msgid "" -"To add navigation to a scene you need to add a navigation node, then a " -"navigation mesh instance as a child of the navigation node. With the " -"navigation mesh instance selected you need to go to the inspector and create " -"a new navigation mesh." +"The \"map\" is the entire world for navigation, it's similar to \"space\" " +"for the physics engine. It's comprised of navigation regions, these regions " +"define parts of the world that can be navigated around by navigation agents." msgstr "" #: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:26 msgid "" -"Click on the navigation mesh and you can now alter the properties that " -"define how the navigation mesh is generated. You can find a full description " -"for each of the properties in the class reference here: :ref:`NavigationMesh " -"`." +"To create a navigation region add the :ref:" +"`NavigationMeshInstance` node to a 3D scene. " +"Next in the inspector for that mesh create or add a :ref:" +"`NavigationMesh`. The navmesh contains options for how " +"it will be generated when it's baked. The geometry options control which " +"nodes, and types of nodes, are used to bake the mesh. A full description of " +"each setting and how it works can be found in the :ref:`NavigationMesh class " +"reference`." msgstr "" -#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:31 +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:33 msgid "" -"After making the changes you want the mesh can be generated by clicking " -"**Bake NavMesh** in the toolbar." +"Once the settings have been properly configured press the \"Bake NavMesh\" " +"button at the top of the inspector to generate it." msgstr "" -#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:36 +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:40 +msgid "" +"It can also be generated at runtime using the `bake_navigation_region()` " +"method of the navigation region node." +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:43 msgid "" "Once the mesh has finished generating you should see the transparent " -"navigation mesh above the areas in your scene that can be navigated to." +"navigation mesh above the areas in the scene that can be navigated to." msgstr "" -#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:41 +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:48 msgid "" "Keep in mind that the navmesh shows where the center of an entity can go. " -"For example, if you set the agent radius to 0.5 then your navigation mesh " +"For example, if you set the agent radius to 0.5 then the navigation mesh " "will have a distance of 0.5 from any ledges or walls to prevent clipping " "into the wall or hanging off of the edge." msgstr "" -#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:47 -msgid "Generating a path" +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:53 +msgid "" +"Navigation agents can moved from one region to another if they are next to " +"each other. Additionally a baked navmesh can be moved at runtime and agents " +"will still be able to navigate onto it from another region. For example, " +"navigating onto a moving platform that has stopped will work." msgstr "" -#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:49 +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:59 +msgid "NavigationAgent3D" +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:61 +msgid "" +"Navigation agent nodes are what actually does the pathfinding in a scene, " +"one can be attached to the root node of an entity that needs to navigate." +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:64 +msgid "" +"To have it pathfind use its `set_target_location` method. Once the target " +"has been set a path will be generated to the node using navigation regions, " +"with several points on the way to the final destination." +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:69 +msgid "RVO processing" +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:71 +msgid "" +"RVO stands for reciprocal velocity obstacle. RVO processing is a way to " +"pathfind while taking into account other agents and physics bodies that are " +"also moving." +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:75 +msgid "" +"To use it set a target like normal. Then an agent needs to fetch its next " +"nav path location, and compute its velocity to that location. Instead of " +"using that value to move use it to set the velocity on the agent with " +"`set_velocity`. Then a new velocity that takes into account other agents and " +"obstacles is generated and emitted with the signal `velocity_computed`." +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:81 +msgid "" +"However agents can only take into account a set number of other nearby " +"agents, this is the :ref:`max " +"neighbors` property of an " +"agent and can be adjusted. This is **not** a limit for how many agents can " +"use a navigation region at the same time." +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:87 +msgid "NavigationObstacle3D" +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:89 +msgid "" +"This node is used to mark physics bodies that move around a navigation area " +"that agents need to avoid (this will only work if you use RVO processing). " +"For example, this node would be useful for pieces of debris in a " +"destructible environment. Add it as the child of a physics body and " +"navigation agent nodes will avoid it while pathfinding." +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:96 +msgid "Generating a path (old method)" +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:98 +msgid "" +"This is the old method for generating a navigation path, it will be removed " +"in Godot 4. First, add a navigation node to the scene, then add a navigation " +"mesh instance as it's child and set up a navigation mesh." +msgstr "" + +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:103 msgid "" "To get a path between two areas on a map you use the navigation node method " "``get_simple_path()``. The first argument is a Vector3 of the starting " @@ -45449,7 +46584,7 @@ msgid "" "when generating a path." msgstr "" -#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:55 +#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:109 msgid "" "The method will return a :ref:`PoolVector3Array ` " "consisting of points that make a path. If there is no way to navigate to the " @@ -45457,18 +46592,6 @@ msgid "" "`." msgstr "" -#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:60 -msgid "Official example project" -msgstr "" - -#: ../../docs/tutorials/navigation/real_time_navigation_3d.rst:62 -msgid "" -"There is an official example project on how to use 3D navigation. You can " -"find the repository `here `__. It can also be found in the asset " -"library." -msgstr "" - #: ../../docs/tutorials/networking/high_level_multiplayer.rst:4 msgid "High-level multiplayer" msgstr "" @@ -45548,8 +46671,9 @@ msgid "" "and low-level networking features. As networking is always largely hardware " "and operating system dependent, however, some features may change or not be " "available on some target platforms. Most notably, the HTML5 platform " -"currently only offers WebSocket support and lacks some of the higher level " -"features as well as raw access to low-level protocols like TCP and UDP." +"currently offers WebSockets and WebRTC support but lacks some of the higher-" +"level features, as well as raw access to low-level protocols like TCP and " +"UDP." msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:34 @@ -45821,14 +46945,15 @@ msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:175 msgid "" -"Reliable: the function call will arrive no matter what, but may take longer " -"because it will be re-transmitted in case of failure." +"Reliable: when the function call arrives, an acknowledgement will be sent " +"back; if the acknowledgement isn't received after a certain amount of time, " +"the function call will be re-transmitted." msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:176 msgid "" -"Unreliable: if the function call does not arrive, it will not be re-" -"transmitted; but if it arrives, it will do it quickly." +"Unreliable: the function call is sent only once, without checking to see if " +"it arrived or not, but also without any extra overhead." msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:178 @@ -45842,8 +46967,9 @@ msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:181 msgid "" -"There is also the ``get_rpc_sender_id`` function in ``SceneTree``, which can " -"be used to check which peer (or peer ID) sent an RPC." +"There is also :ref:`SceneTree.get_rpc_sender_id() " +"`, which can be used to check " +"which peer (or peer ID) sent an RPC." msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:184 @@ -45864,57 +46990,76 @@ msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:238 msgid "" -"This keyword has two main uses. The first is to let Godot know that this " -"function can be called from RPC. If no keywords are added, Godot will block " -"any attempts to call functions for security. This makes security work a lot " -"easier (so a client can't call a function to delete a file on another " -"client's system)." +"This keyword is one of many that allow a function to be called by a remote " +"procedure call (RPC). There are six of them total:" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:242 -msgid "" -"The second use is to specify how the function will be called via RPC. There " -"are four different keywords:" -msgstr "" - -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:244 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:240 msgid "``remote``" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:245 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:241 msgid "``remotesync``" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:246 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:242 +msgid "``puppet``" +msgstr "" + +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:243 +msgid "``puppetsync``" +msgstr "" + +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:244 msgid "``master``" msgstr "" +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:245 +msgid "``mastersync``" +msgstr "" + #: ../../docs/tutorials/networking/high_level_multiplayer.rst:247 -msgid "``puppet``" +msgid "" +"Each of them designate who can call the rpc, and optionally ``sync`` if the " +"RPC can be called locally." msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:249 msgid "" -"The ``remote`` keyword means that the ``rpc()`` call will go via network and " -"execute remotely." +"If no rpc keywords are added, Godot will block any attempts to call " +"functions remotely. This makes security work a lot easier (so a client can't " +"call a function to delete a file on another client's system)." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:251 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:252 msgid "" -"The ``remotesync`` keyword means that the ``rpc()`` call will go via network " -"and execute remotely, but will also execute locally (do a normal function " -"call)." -msgstr "" - -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:253 -msgid "" -"The others will be explained further down. Note that you could also use the " -"``get_rpc_sender_id`` function on ``SceneTree`` to check which peer actually " -"made the RPC call to ``register_player``." +"The ``remote`` keyword can be called by any peer, including the server and " +"all clients. The ``puppet`` keyword means a call can be made from the " +"network master to any network puppet. The ``master`` keyword means a call " +"can be made from any network puppet to the network master." msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:256 msgid "" +"If ``sync`` is included, the call can also be made locally. For example, to " +"allow the network master to change the player's position on all peers:" +msgstr "" + +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:263 +msgid "" +"You can also use :ref:`SceneTree.get_rpc_sender_id() " +"` to have more advanced rules on " +"how an rpc can be called." +msgstr "" + +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:265 +msgid "" +"These keywords are further explained in :ref:`Synchronizing the game " +"`." +msgstr "" + +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:267 +msgid "" "With this, lobby management should be more or less explained. Once you have " "your game going, you will most likely want to add some extra security to " "make sure clients don't do anything funny (just validate the info they send " @@ -45922,22 +47067,22 @@ msgid "" "because each game will share different information, this is not shown here." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:261 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:272 msgid "Starting the game" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:263 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:274 msgid "" "Once enough players have gathered in the lobby, the server should probably " "start the game. This is nothing special in itself, but we'll explain a few " "nice tricks that can be done at this point to make your life much easier." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:267 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:278 msgid "Player scenes" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:269 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:280 msgid "" "In most games, each player will likely have its own scene. Remember that " "this is a multiplayer game, so in every peer you need to instance **one " @@ -45945,21 +47090,21 @@ msgid "" "needs to instance 4 player nodes." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:272 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:283 msgid "" "So, how to name such nodes? In Godot, nodes need to have a unique name. It " "must also be relatively easy for a player to tell which node represents each " "player ID." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:275 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:286 msgid "" "The solution is to simply name the *root nodes of the instanced player " "scenes as their network ID*. This way, they will be the same in every peer " "and RPC will work great! Here is an example:" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:305 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:316 msgid "" "Depending on when you execute pre_configure_game(), you may need to change " "any calls to ``add_child()`` to be deferred via ``call_deferred()``, as the " @@ -45967,11 +47112,11 @@ msgid "" "is being called)." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:309 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:320 msgid "Synchronizing game start" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:311 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:322 msgid "" "Setting up players might take different amounts of time for every peer due " "to lag, different hardware, or other reasons. To make sure the game will " @@ -45979,17 +47124,17 @@ msgid "" "are ready can be useful:" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:320 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:331 msgid "" "When the server gets the OK from all the peers, it can tell them to start, " "as for example:" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:344 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:357 msgid "Synchronizing the game" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:346 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:359 msgid "" "In most games, the goal of multiplayer networking is that the game runs " "synchronized on all the peers playing it. Besides supplying an RPC and " @@ -45997,24 +47142,24 @@ msgid "" "masters." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:350 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:363 msgid "Network master" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:352 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:365 msgid "" "The network master of a node is the peer that has the ultimate authority " "over it." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:354 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:367 msgid "" "When not explicitly set, the network master is inherited from the parent " "node, which if not changed, is always going to be the server (ID 1). Thus " "the server has authority over all nodes by default." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:356 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:369 msgid "" "The network master can be set with the function :ref:`Node." "set_network_master(id, recursive) ` " @@ -46022,7 +47167,7 @@ msgid "" "recursively set on all child nodes of the node as well)." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:359 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:372 msgid "" "Checking that a specific node instance on a peer is the network master for " "this node for all connected peers is done by calling :ref:`Node." @@ -46030,47 +47175,47 @@ msgid "" "``true`` when executed on the server and ``false`` on all client peers." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:361 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:374 msgid "" "If you have paid attention to the previous example, it's possible you " "noticed that each peer was set to have network master authority for their " "own player (Node) instead of the server:" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:381 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:394 msgid "" "Each time this piece of code is executed on each peer, the peer makes itself " "master on the node it controls, and all other nodes remain as puppets with " "the server being their network master." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:383 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:396 msgid "" "To clarify, here is an example of how this looks in the `bomber demo " "`_:" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:390 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:403 msgid "Master and puppet keywords" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:394 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:407 msgid "" "The real advantage of this model is when used with the ``master``/``puppet`` " "keywords in GDScript (or their equivalent in C# and Visual Script). " "Similarly to the ``remote`` keyword, functions can also be tagged with them:" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:397 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:410 msgid "Example bomb code:" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:405 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:418 msgid "Example player code:" msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:422 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:435 msgid "" "In the above example, a bomb explodes somewhere (likely managed by whoever " "is the master of this bomb-node, e.g. the host). The bomb knows the bodies " @@ -46078,7 +47223,7 @@ msgid "" "method before calling it." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:425 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:438 msgid "" "Recall that each peer has a complete set of instances of player nodes, one " "instance for each peer (including itself and the host). Each peer has set " @@ -46086,14 +47231,14 @@ msgid "" "a different peer as the master for each of the other instances." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:429 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:442 msgid "" "Now, going back to the call to the ``exploded`` method, the bomb on the host " "has called it remotely on all bodies in the area that have the method. " "However, this method is in a player node and has a ``master`` keyword." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:432 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:445 msgid "" "The ``master`` keyword on the ``exploded`` method in the player node means " "two things for how this call is made. Firstly, from the perspective of the " @@ -46106,7 +47251,7 @@ msgid "" "who is the master of what." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:439 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:452 msgid "" "The above setup means that only the peer who owns the affected body will be " "responsible for telling all the other peers that its body was stunned, after " @@ -46120,21 +47265,21 @@ msgid "" "the network master of it)." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:446 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:459 msgid "" "The result of this call to ``stun`` is to make the player look stunned on " "the screen of all the peers, including the current network master peer (due " "to the local call to ``stun`` after ``rpc(\"stun\")``)." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:449 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:462 msgid "" "The master of the bomb (the host) repeats the above steps for each of the " "bodies in the area, such that all the instances of any player in the bomb " "area get stunned on the screens of all the peers." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:452 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:465 msgid "" "Note that you could also send the ``stun()`` message only to a specific " "player by using ``rpc_id(, \"exploded\", bomb_owner)``. This may not " @@ -46142,14 +47287,14 @@ msgid "" "cases, like single target damage." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:462 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:475 msgid "" "Once you've made a multiplayer game, you may want to export it to run it on " "a dedicated server with no GPU available. See :ref:" "`doc_exporting_for_dedicated_servers` for more information." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:468 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:481 msgid "" "The code samples on this page aren't designed to run on a dedicated server. " "You'll have to modify them so the server isn't considered to be a player. " @@ -46157,7 +47302,7 @@ msgid "" "player who joins can start the game." msgstr "" -#: ../../docs/tutorials/networking/high_level_multiplayer.rst:475 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:488 msgid "" "The bomberman example here is largely for illustrational purposes, and does " "not do anything on the host-side to handle the case where a peer uses a " @@ -48289,6 +49434,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/performance/using_multimesh.rst:15 +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:112 msgid "MultiMeshes" msgstr "" @@ -48358,794 +49504,6 @@ msgid "" "thousands, GDScript should be fine." msgstr "" -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:1 -msgid "optimization" -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:7 -msgid "Optimizing 3D performance" -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:10 -msgid "Culling" -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:12 -msgid "" -"Godot will automatically perform view frustum culling in order to prevent " -"rendering objects that are outside the viewport. This works well for games " -"that take place in a small area, however things can quickly become " -"problematic in larger levels." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:18 -msgid "Occlusion culling" -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:20 -msgid "" -"Walking around a town for example, you may only be able to see a few " -"buildings in the street you are in, as well as the sky and a few birds " -"flying overhead. As far as a naive renderer is concerned however, you can " -"still see the entire town. It won't just render the buildings in front of " -"you, it will render the street behind that, with the people on that street, " -"the buildings behind that. You quickly end up in situations where you are " -"attempting to render 10× or 100× more than what is visible." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:28 -msgid "" -"Things aren't quite as bad as they seem, because the Z-buffer usually allows " -"the GPU to only fully shade the objects that are at the front. This is " -"called *depth prepass* and is enabled by default in Godot when using the " -"GLES3 renderer. However, unneeded objects are still reducing performance." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:33 -msgid "" -"One way we can potentially reduce the amount to be rendered is to take " -"advantage of occlusion." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:36 -msgid "" -"For instance, in our city street scenario, you may be able to work out in " -"advance that you can only see two other streets, ``B`` and ``C``, from " -"street ``A``. Streets ``D`` to ``Z`` are hidden. In order to take advantage " -"of occlusion, all you have to do is work out when your viewer is in street " -"``A`` (perhaps using Godot Areas), then you can hide the other streets." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:42 -msgid "" -"This example is a manual version of what is known as a *potentially visible " -"set*. It is a very powerful technique for speeding up rendering. You can " -"also use it to restrict physics or AI to the local area, and speed these up " -"as well as rendering." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:48 -msgid "Portal Rendering" -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:50 -msgid "" -"However, there is a much easier way to take advantage of occlusion. Godot " -"features an advanced portal rendering system, which can perform occlusion " -"culling from cameras and lights. See :ref:`doc_rooms_and_portals`." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:54 -msgid "" -"This is not a fully automatic system and it requires some manual setup. " -"However, it potentially offers significant performance increases." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:59 -msgid "" -"In some cases, you can adapt your level design to add more occlusion " -"opportunities. For example, you can add more walls to prevent the player " -"from seeing too far away, which would decrease performance due to the lost " -"opportunies for occlusion culling." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:65 -msgid "Other occlusion techniques" -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:67 -msgid "" -"As well as the portal system and manual methods, there are various other " -"occlusion techniques such as raster-based occlusion culling. Some of these " -"may be available through add-ons or may be available in core Godot in the " -"future." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:72 -msgid "Transparent objects" -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:74 -msgid "" -"Godot sorts objects by :ref:`Material ` and :ref:`Shader " -"` to improve performance. This, however, can not be done with " -"transparent objects. Transparent objects are rendered from back to front to " -"make blending with what is behind work. As a result, **try to use as few " -"transparent objects as possible**. If an object has a small section with " -"transparency, try to make that section a separate surface with its own " -"material." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:82 -msgid "" -"For more information, see the :ref:`GPU optimizations " -"` doc." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:86 -msgid "Level of detail (LOD)" -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:88 -msgid "" -"In some situations, particularly at a distance, it can be a good idea to " -"**replace complex geometry with simpler versions**. The end user will " -"probably not be able to see much difference. Consider looking at a large " -"number of trees in the far distance. There are several strategies for " -"replacing models at varying distance. You could use lower poly models, or " -"use transparency to simulate more complex geometry." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:96 -msgid "Billboards and imposters" -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:98 -msgid "" -"The simplest version of using transparency to deal with LOD is billboards. " -"For example, you can use a single transparent quad to represent a tree at " -"distance. This can be very cheap to render, unless of course, there are many " -"trees in front of each other. In which case transparency may start eating " -"into fill rate (for more information on fill rate, see :ref:" -"`doc_gpu_optimization`)." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:104 -msgid "" -"An alternative is to render not just one tree, but a number of trees " -"together as a group. This can be especially effective if you can see an area " -"but cannot physically approach it in a game." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:108 -msgid "" -"You can make imposters by pre-rendering views of an object at different " -"angles. Or you can even go one step further, and periodically re-render a " -"view of an object onto a texture to be used as an imposter. At a distance, " -"you need to move the viewer a considerable distance for the angle of view to " -"change significantly. This can be complex to get working, but may be worth " -"it depending on the type of project you are making." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:116 -msgid "Use instancing (MultiMesh)" -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:118 -msgid "" -"If several identical objects have to be drawn in the same place or nearby, " -"try using :ref:`MultiMesh ` instead. MultiMesh allows the " -"drawing of many thousands of objects at very little performance cost, making " -"it ideal for flocks, grass, particles, and anything else where you have " -"thousands of identical objects." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:124 -msgid "Also see the :ref:`Using MultiMesh ` doc." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:127 -msgid "Bake lighting" -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:129 -msgid "" -"Lighting objects is one of the most costly rendering operations. Realtime " -"lighting, shadows (especially multiple lights), and GI are especially " -"expensive. They may simply be too much for lower power mobile devices to " -"handle." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:133 -msgid "" -"**Consider using baked lighting**, especially for mobile. This can look " -"fantastic, but has the downside that it will not be dynamic. Sometimes, this " -"is a trade-off worth making." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:137 -msgid "" -"In general, if several lights need to affect a scene, it's best to use :ref:" -"`doc_baked_lightmaps`. Baking can also improve the scene quality by adding " -"indirect light bounces." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:142 -msgid "Animation and skinning" -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:144 -msgid "" -"Animation and vertex animation such as skinning and morphing can be very " -"expensive on some platforms. You may need to lower the polycount " -"considerably for animated models or limit the number of them on screen at " -"any one time." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:149 -msgid "Large worlds" -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:151 -msgid "" -"If you are making large worlds, there are different considerations than what " -"you may be familiar with from smaller games." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:154 -msgid "" -"Large worlds may need to be built in tiles that can be loaded on demand as " -"you move around the world. This can prevent memory use from getting out of " -"hand, and also limit the processing needed to the local area." -msgstr "" - -#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:158 -msgid "" -"There may also be rendering and physics glitches due to floating point error " -"in large worlds. You may be able to use techniques such as orienting the " -"world around the player (rather than the other way around), or shifting the " -"origin periodically to keep things centred around ``Vector3(0, 0, 0)``." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/index.rst:2 -msgid "Animating thousands of objects" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:4 -msgid "Animating thousands of fish with MultiMeshInstance" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:6 -msgid "" -"This tutorial explores a technique used in the game `ABZU `_ for rendering and " -"animating thousands of fish using vertex animation and static mesh " -"instancing." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:10 -msgid "" -"In Godot, this can be accomplished with a custom :ref:`Shader " -"` and a :ref:`MultiMeshInstance `. " -"Using the following technique you can render thousands of animated objects, " -"even on low end hardware." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:14 -msgid "" -"We will start by animating one fish. Then, we will see how to extend that " -"animation to thousands of fish." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:18 -msgid "Animating one Fish" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:20 -msgid "" -"We will start with a single fish. Load your fish model into a :ref:" -"`MeshInstance ` and add a new :ref:`ShaderMaterial " -"`." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:23 -msgid "" -"Here is the fish we will be using for the example images, you can use any " -"fish model you like." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:27 -msgid "" -"The fish model in this tutorial is made by `QuaterniusDev `_ and is shared with a creative commons license. CC0 1.0 Universal (CC0 " -"1.0) Public Domain Dedication https://creativecommons.org/publicdomain/" -"zero/1.0/" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:31 -msgid "" -"Typically, you would use bones and a :ref:`Skeleton ` to " -"animate objects. However, bones are animated on the CPU and so you end " -"having to calculate thousands of operations every frame and it becomes " -"impossible to have thousands of objects. Using vertex animation in a vertex " -"shader, you avoid using bones and can instead calculate the full animation " -"in a few lines of code and completely on the GPU." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:37 -msgid "The animation will be made of four key motions:" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:39 -msgid "A side to side motion" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:40 -msgid "A pivot motion around the center of the fish" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:41 -msgid "A panning wave motion" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:42 -msgid "A panning twist motion" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:44 -msgid "" -"All the code for the animation will be in the vertex shader with uniforms " -"controlling the amount of motion. We use uniforms to control the strength of " -"the motion so that you can tweak the animation in editor and see the results " -"in real time, without the shader having to recompile." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:48 -msgid "" -"All the motions will be made using cosine waves applied to ``VERTEX`` in " -"model space. We want the vertices to be in model space so that the motion is " -"always relative to the orientation of the fish. For example, side-to-side " -"will always move the fish back and forth in its left to right direction, " -"instead of on the ``x`` axis in the world orientation." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:53 -msgid "" -"In order to control the speed of the animation, we will start by defining " -"our own time variable using ``TIME``." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:60 -msgid "" -"The first motion we will implement is the side to side motion. It can be " -"made by offsetting ``VERTEX.x`` by ``cos`` of ``TIME``. Each time the mesh " -"is rendered, all the vertices will move to the side by the amount of " -"``cos(time)``." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:69 -msgid "The resulting animation should look something like this:" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:73 -msgid "" -"Next, we add the pivot. Because the fish is centered at (0, 0), all we have " -"to do is multiply ``VERTEX`` by a rotation matrix for it to rotate around " -"the center of the fish." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:76 -msgid "We construct a rotation matrix like so:" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:85 -msgid "" -"And then we apply it in the ``x`` and ``z`` axes by multiplying it by " -"``VERTEX.xz``." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:91 -msgid "With only the pivot applied you should see something like this:" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:95 -msgid "" -"The next two motions need to pan down the spine of the fish. For that, we " -"need a new variable, ``body``. ``body`` is a float that is ``0`` at the tail " -"of the fish and ``1`` at its head." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:102 -msgid "" -"The next motion is a cosine wave that moves down the length of the fish. To " -"make it move along the spine of the fish, we offset the input to ``cos`` by " -"the position along the spine, which is the variable we defined above, " -"``body``." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:111 -msgid "" -"This looks very similar to the side to side motion we defined above, but in " -"this one, by using ``body`` to offset ``cos`` each vertex along the spine " -"has a different position in the wave making it look like a wave is moving " -"along the fish." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:117 -msgid "" -"The last motion is the twist, which is a panning roll along the spine. " -"Similarly to the pivot, we first construct a rotation matrix." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:126 -msgid "" -"We apply the rotation in the ``xy`` axes so that the fish appears to roll " -"around its spine. For this to work, the fish's spine needs to be centered on " -"the ``z`` axis." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:133 -msgid "Here is the fish with twist applied:" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:137 -msgid "" -"If we apply all these motions one after another, we get a fluid jelly-like " -"motion." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:141 -msgid "" -"Normal fish swim mostly with the back half of their body. Accordingly, we " -"need to limit the panning motions to the back half of the fish. To do this, " -"we create a new variable, ``mask``." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:144 -msgid "" -"``mask`` is a float that goes from ``0`` at the front of the fish to ``1`` " -"at the end using ``smoothstep`` to control the point at which the transition " -"from ``0`` to ``1`` happens." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:152 -msgid "Below is an image of the fish with ``mask`` used as ``COLOR``:" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:156 -msgid "" -"For the wave, we multiply the motion by ``mask`` which will limit it to the " -"back half." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:163 -msgid "" -"In order to apply the mask to the twist, we use ``mix``. ``mix`` allows us " -"to mix the vertex position between a fully rotated vertex and one that is " -"not rotated. We need to use ``mix`` instead of multiplying ``mask`` by the " -"rotated ``VERTEX`` because we are not adding the motion to the ``VERTEX`` we " -"are replacing the ``VERTEX`` with the rotated version. If we multiplied that " -"by ``mask``, we would shrink the fish." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:174 -msgid "Putting the four motions together gives us the final animation." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:178 -msgid "" -"Go ahead and play with the uniforms in order to alter the swim cycle of the " -"fish. You will find that you can create a wide variety of swim styles using " -"these four motions." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:182 -msgid "Making a school of fish" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:184 -msgid "" -"Godot makes it easy to render thousands of the same object using a " -"MultiMeshInstance node." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:186 -msgid "" -"A MultiMeshInstance node is created and used the same way you would make a " -"MeshInstance node. For this tutorial, we will name the MultiMeshInstance " -"node ``School``, because it will contain a school of fish." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:190 -msgid "" -"Once you have a MultiMeshInstance add a :ref:`MultiMesh `, " -"and to that MultiMesh add your :ref:`Mesh ` with the shader from " -"above." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:193 -msgid "" -"MultiMeshes draw your Mesh with three additional per-instance properties: " -"Transform (rotation, translation, scale), Color, and Custom. Custom is used " -"to pass in 4 multi-use variables using a :ref:`Color `." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:197 -msgid "" -"``instance_count`` specifies how many instances of the mesh you want to " -"draw. For now, leave ``instance_count`` at ``0`` because you cannot change " -"any of the other parameters while ``instance_count`` is larger than ``0``. " -"We will set ``instance count`` in GDScript later." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:201 -msgid "" -"``transform_format`` specifies whether the transforms used are 3D or 2D. For " -"this tutorial, select 3D." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:203 -msgid "" -"For both ``color_format`` and ``custom_data_format`` you can choose between " -"``None``, ``Byte``, and ``Float``. ``None`` means you won't be passing in " -"that data (either a per-instance ``COLOR`` variable, or ``INSTANCE_CUSTOM``) " -"to the shader. ``Byte`` means each number making up the color you pass in " -"will be stored with 8 bits while ``Float`` means each number will be stored " -"in a floating-point number (32 bits). ``Float`` is slower but more precise, " -"``Byte`` will take less memory and be faster, but you may see some visual " -"artifacts." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:210 -msgid "Now, set ``instance_count`` to the number of fish you want to have." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:212 -msgid "Next we need to set the per-instance transforms." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:214 -msgid "" -"There are two ways to set per-instance transforms for MultiMeshes. The first " -"is entirely in editor and is described in the :ref:`MultiMeshInstance " -"tutorial `." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:217 -msgid "" -"The second is to loop over all the instances and set their transforms in " -"code. Below, we use GDScript to loop over all the instances and set their " -"transform to a random position." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:227 -msgid "" -"Running this script will place the fish in random positions in a box around " -"the position of the MultiMeshInstance." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:230 -msgid "" -"If performance is an issue for you, try running the scene with GLES2 or with " -"fewer fish." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:232 -msgid "" -"Notice how all the fish are all in the same position in their swim cycle? It " -"makes them look very robotic. The next step is to give each fish a different " -"position in the swim cycle so the entire school looks more organic." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:237 -msgid "Animating a school of fish" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:239 -msgid "" -"One of the benefits of animating the fish using ``cos`` functions is that " -"they are animated with one parameter, ``time``. In order to give each fish a " -"unique position in the swim cycle, we only need to offset ``time``." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:243 -msgid "" -"We do that by adding the per-instance custom value ``INSTANCE_CUSTOM`` to " -"``time``." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:249 -msgid "" -"Next, we need to pass a value into ``INSTANCE_CUSTOM``. We do that by adding " -"one line into the ``for`` loop from above. In the ``for`` loop we assign " -"each instance a set of four random floats to use." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:257 -msgid "" -"Now the fish all have unique positions in the swim cycle. You can give them " -"a little more individuality by using ``INSTANCE_CUSTOM`` to make them swim " -"faster or slower by multiplying by ``TIME``." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:266 -msgid "" -"You can even experiment with changing the per-instance color the same way " -"you changed the per-instance custom value." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:269 -msgid "" -"One problem that you will run into at this point is that the fish are " -"animated, but they are not moving. You can move them by updating the per-" -"instance transform for each fish every frame. Although doing so will be " -"faster than moving thousands of MeshInstances per frame, it'll still likely " -"be slow." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:274 -msgid "" -"In the next tutorial we will cover how to use :ref:`Particles " -"` to take advantage of the GPU and move each fish around " -"individually while still receiving the benefits of instancing." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:4 -msgid "Controlling thousands of fish with Particles" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:6 -msgid "" -"The problem with :ref:`MeshInstances ` is that it is " -"expensive to update their transform array. It is great for placing many " -"static objects around the scene. But it is still difficult to move the " -"objects around the scene." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:10 -msgid "" -"To make each instance move in an interesting way, we will use a :ref:" -"`Particles ` node. Particles take advantage of GPU " -"acceleration by computing and setting the per-instance information in a :ref:" -"`Shader `." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:14 -msgid "" -"Particles are not available in GLES2, instead use :ref:`CPUParticles " -"`, which do the same thing as Particles, but do not " -"benefit from GPU acceleration." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:17 -msgid "" -"First create a Particles node. Then, under \"Draw Passes\" set the " -"Particle's \"Draw Pass 1\" to your :ref:`Mesh `. Then under " -"\"Process Material\" create a new :ref:`ShaderMaterial " -"`." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:21 -msgid "Set the ``shader_type`` to ``particles``." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:27 -msgid "Then add the following two functions:" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:51 -msgid "" -"These functions come from the default :ref:`ParticlesMaterial " -"`. They are used to generate a random number from " -"each particle's ``RANDOM_SEED``." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:54 -msgid "" -"A unique thing about particle shaders is that some built-in variables are " -"saved across frames. ``TRANSFORM``, ``COLOR``, and ``CUSTOM`` can all be " -"accessed in the Spatial shader of the mesh, and also in the particle shader " -"the next time it is run." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:58 -msgid "" -"Next, setup your ``vertex`` function. Particles shaders only contain a " -"vertex function and no others." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:61 -msgid "" -"First we will distinguish between code that needs to be run only when the " -"particle system starts and code that should always run. We want to give each " -"fish a random position and a random animation offset when the system is " -"first run. To do so, we wrap that code in an ``if`` statement that checks " -"the built-in variable ``RESTART`` which becomes ``true`` for one frame when " -"the particle system is restarted." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:66 -msgid "From a high level, this looks like:" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:78 -msgid "" -"Next, we need to generate 4 random numbers: 3 to create a random position " -"and one for the random offset of the swim cycle." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:81 -msgid "" -"First, generate 4 seeds inside the ``RESTART`` block using the ``hash`` " -"function provided above:" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:90 -msgid "" -"Then, use those seeds to generate random numbers using ``rand_from_seed``:" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:99 -msgid "" -"Finally, assign ``position`` to ``TRANSFORM[3].xyz``, which is the part of " -"the transform that holds the position information." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:106 -msgid "Remember, all this code so far goes inside the ``RESTART`` block." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:108 -msgid "" -"The vertex shader for your mesh can stay the exact same as it was in the " -"previous tutorial." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:110 -msgid "" -"Now you can move each fish individually each frame, either by adding to the " -"``TRANSFORM`` directly or by writing to ``VELOCITY``." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:113 -msgid "Let's transform the fish by setting their ``VELOCITY``." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:119 -msgid "" -"This is the most basic way to set ``VELOCITY`` every particle (or fish) will " -"have the same velocity." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:121 -msgid "" -"Just by setting ``VELOCITY`` you can make the fish swim however you want. " -"For example, try the code below." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:128 -msgid "This will give each fish a unique speed between ``2`` and ``10``." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:130 -msgid "" -"If you used ``CUSTOM.y`` in the last tutorial, you can also set the speed of " -"the swim animation based on the ``VELOCITY``. Just use ``CUSTOM.y``." -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:137 -msgid "This code gives you the following behavior:" -msgstr "" - -#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:141 -msgid "" -"Using a ParticlesMaterial you can make the fish behavior as simple or " -"complex as you like. In this tutorial we only set Velocity, but in your own " -"Shaders you can also set ``COLOR``, rotation, scale (through ``TRANSFORM``). " -"Please refer to the :ref:`Particles Shader Reference ` " -"for more information on particle shaders." -msgstr "" - #: ../../docs/tutorials/performance/batching.rst:4 msgid "Optimization using batching" msgstr "" @@ -49936,6 +50294,794 @@ msgid "" "activated." msgstr "" +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:1 +msgid "optimization" +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:7 +msgid "Optimizing 3D performance" +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:10 +msgid "Culling" +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:12 +msgid "" +"Godot will automatically perform view frustum culling in order to prevent " +"rendering objects that are outside the viewport. This works well for games " +"that take place in a small area, however things can quickly become " +"problematic in larger levels." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:18 +msgid "Occlusion culling" +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:20 +msgid "" +"Walking around a town for example, you may only be able to see a few " +"buildings in the street you are in, as well as the sky and a few birds " +"flying overhead. As far as a naive renderer is concerned however, you can " +"still see the entire town. It won't just render the buildings in front of " +"you, it will render the street behind that, with the people on that street, " +"the buildings behind that. You quickly end up in situations where you are " +"attempting to render 10× or 100× more than what is visible." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:28 +msgid "" +"Things aren't quite as bad as they seem, because the Z-buffer usually allows " +"the GPU to only fully shade the objects that are at the front. This is " +"called *depth prepass* and is enabled by default in Godot when using the " +"GLES3 renderer. However, unneeded objects are still reducing performance." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:33 +msgid "" +"One way we can potentially reduce the amount to be rendered is to take " +"advantage of occlusion." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:36 +msgid "" +"For instance, in our city street scenario, you may be able to work out in " +"advance that you can only see two other streets, ``B`` and ``C``, from " +"street ``A``. Streets ``D`` to ``Z`` are hidden. In order to take advantage " +"of occlusion, all you have to do is work out when your viewer is in street " +"``A`` (perhaps using Godot Areas), then you can hide the other streets." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:42 +msgid "" +"This example is a manual version of what is known as a *potentially visible " +"set*. It is a very powerful technique for speeding up rendering. You can " +"also use it to restrict physics or AI to the local area, and speed these up " +"as well as rendering." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:48 +msgid "Portal Rendering" +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:50 +msgid "" +"However, there is a much easier way to take advantage of occlusion. Godot " +"features an advanced portal rendering system, which can perform occlusion " +"culling from cameras and lights. See :ref:`doc_rooms_and_portals`." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:54 +msgid "" +"This is not a fully automatic system and it requires some manual setup. " +"However, it potentially offers significant performance increases." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:59 +msgid "" +"In some cases, you can adapt your level design to add more occlusion " +"opportunities. For example, you can add more walls to prevent the player " +"from seeing too far away, which would decrease performance due to the lost " +"opportunies for occlusion culling." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:65 +msgid "Other occlusion techniques" +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:67 +msgid "" +"As well as the portal system and manual methods, there are various other " +"occlusion techniques such as raster-based occlusion culling. Some of these " +"may be available through add-ons or may be available in core Godot in the " +"future." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:72 +msgid "Transparent objects" +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:74 +msgid "" +"Godot sorts objects by :ref:`Material ` and :ref:`Shader " +"` to improve performance. This, however, can not be done with " +"transparent objects. Transparent objects are rendered from back to front to " +"make blending with what is behind work. As a result, **try to use as few " +"transparent objects as possible**. If an object has a small section with " +"transparency, try to make that section a separate surface with its own " +"material." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:82 +msgid "" +"For more information, see the :ref:`GPU optimizations " +"` doc." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:86 +msgid "Level of detail (LOD)" +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:88 +msgid "" +"In some situations, particularly at a distance, it can be a good idea to " +"**replace complex geometry with simpler versions**. The end user will " +"probably not be able to see much difference. Consider looking at a large " +"number of trees in the far distance. There are several strategies for " +"replacing models at varying distance. You could use lower poly models, or " +"use transparency to simulate more complex geometry." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:96 +msgid "Billboards and imposters" +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:98 +msgid "" +"The simplest version of using transparency to deal with LOD is billboards. " +"For example, you can use a single transparent quad to represent a tree at " +"distance. This can be very cheap to render, unless of course, there are many " +"trees in front of each other. In which case transparency may start eating " +"into fill rate (for more information on fill rate, see :ref:" +"`doc_gpu_optimization`)." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:104 +msgid "" +"An alternative is to render not just one tree, but a number of trees " +"together as a group. This can be especially effective if you can see an area " +"but cannot physically approach it in a game." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:108 +msgid "" +"You can make imposters by pre-rendering views of an object at different " +"angles. Or you can even go one step further, and periodically re-render a " +"view of an object onto a texture to be used as an imposter. At a distance, " +"you need to move the viewer a considerable distance for the angle of view to " +"change significantly. This can be complex to get working, but may be worth " +"it depending on the type of project you are making." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:116 +msgid "Use instancing (MultiMesh)" +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:118 +msgid "" +"If several identical objects have to be drawn in the same place or nearby, " +"try using :ref:`MultiMesh ` instead. MultiMesh allows the " +"drawing of many thousands of objects at very little performance cost, making " +"it ideal for flocks, grass, particles, and anything else where you have " +"thousands of identical objects." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:124 +msgid "Also see the :ref:`Using MultiMesh ` doc." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:127 +msgid "Bake lighting" +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:129 +msgid "" +"Lighting objects is one of the most costly rendering operations. Realtime " +"lighting, shadows (especially multiple lights), and GI are especially " +"expensive. They may simply be too much for lower power mobile devices to " +"handle." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:133 +msgid "" +"**Consider using baked lighting**, especially for mobile. This can look " +"fantastic, but has the downside that it will not be dynamic. Sometimes, this " +"is a trade-off worth making." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:137 +msgid "" +"In general, if several lights need to affect a scene, it's best to use :ref:" +"`doc_baked_lightmaps`. Baking can also improve the scene quality by adding " +"indirect light bounces." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:142 +msgid "Animation and skinning" +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:144 +msgid "" +"Animation and vertex animation such as skinning and morphing can be very " +"expensive on some platforms. You may need to lower the polycount " +"considerably for animated models or limit the number of them on screen at " +"any one time." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:149 +msgid "Large worlds" +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:151 +msgid "" +"If you are making large worlds, there are different considerations than what " +"you may be familiar with from smaller games." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:154 +msgid "" +"Large worlds may need to be built in tiles that can be loaded on demand as " +"you move around the world. This can prevent memory use from getting out of " +"hand, and also limit the processing needed to the local area." +msgstr "" + +#: ../../docs/tutorials/performance/optimizing_3d_performance.rst:158 +msgid "" +"There may also be rendering and physics glitches due to floating point error " +"in large worlds. You may be able to use techniques such as orienting the " +"world around the player (rather than the other way around), or shifting the " +"origin periodically to keep things centred around ``Vector3(0, 0, 0)``." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/index.rst:2 +msgid "Animating thousands of objects" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:4 +msgid "Animating thousands of fish with MultiMeshInstance" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:6 +msgid "" +"This tutorial explores a technique used in the game `ABZU `_ for rendering and " +"animating thousands of fish using vertex animation and static mesh " +"instancing." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:10 +msgid "" +"In Godot, this can be accomplished with a custom :ref:`Shader " +"` and a :ref:`MultiMeshInstance `. " +"Using the following technique you can render thousands of animated objects, " +"even on low end hardware." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:14 +msgid "" +"We will start by animating one fish. Then, we will see how to extend that " +"animation to thousands of fish." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:18 +msgid "Animating one Fish" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:20 +msgid "" +"We will start with a single fish. Load your fish model into a :ref:" +"`MeshInstance ` and add a new :ref:`ShaderMaterial " +"`." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:23 +msgid "" +"Here is the fish we will be using for the example images, you can use any " +"fish model you like." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:27 +msgid "" +"The fish model in this tutorial is made by `QuaterniusDev `_ and is shared with a creative commons license. CC0 1.0 Universal (CC0 " +"1.0) Public Domain Dedication https://creativecommons.org/publicdomain/" +"zero/1.0/" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:31 +msgid "" +"Typically, you would use bones and a :ref:`Skeleton ` to " +"animate objects. However, bones are animated on the CPU and so you end " +"having to calculate thousands of operations every frame and it becomes " +"impossible to have thousands of objects. Using vertex animation in a vertex " +"shader, you avoid using bones and can instead calculate the full animation " +"in a few lines of code and completely on the GPU." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:37 +msgid "The animation will be made of four key motions:" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:39 +msgid "A side to side motion" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:40 +msgid "A pivot motion around the center of the fish" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:41 +msgid "A panning wave motion" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:42 +msgid "A panning twist motion" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:44 +msgid "" +"All the code for the animation will be in the vertex shader with uniforms " +"controlling the amount of motion. We use uniforms to control the strength of " +"the motion so that you can tweak the animation in editor and see the results " +"in real time, without the shader having to recompile." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:48 +msgid "" +"All the motions will be made using cosine waves applied to ``VERTEX`` in " +"model space. We want the vertices to be in model space so that the motion is " +"always relative to the orientation of the fish. For example, side-to-side " +"will always move the fish back and forth in its left to right direction, " +"instead of on the ``x`` axis in the world orientation." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:53 +msgid "" +"In order to control the speed of the animation, we will start by defining " +"our own time variable using ``TIME``." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:60 +msgid "" +"The first motion we will implement is the side to side motion. It can be " +"made by offsetting ``VERTEX.x`` by ``cos`` of ``TIME``. Each time the mesh " +"is rendered, all the vertices will move to the side by the amount of " +"``cos(time)``." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:69 +msgid "The resulting animation should look something like this:" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:73 +msgid "" +"Next, we add the pivot. Because the fish is centered at (0, 0), all we have " +"to do is multiply ``VERTEX`` by a rotation matrix for it to rotate around " +"the center of the fish." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:76 +msgid "We construct a rotation matrix like so:" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:85 +msgid "" +"And then we apply it in the ``x`` and ``z`` axes by multiplying it by " +"``VERTEX.xz``." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:91 +msgid "With only the pivot applied you should see something like this:" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:95 +msgid "" +"The next two motions need to pan down the spine of the fish. For that, we " +"need a new variable, ``body``. ``body`` is a float that is ``0`` at the tail " +"of the fish and ``1`` at its head." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:102 +msgid "" +"The next motion is a cosine wave that moves down the length of the fish. To " +"make it move along the spine of the fish, we offset the input to ``cos`` by " +"the position along the spine, which is the variable we defined above, " +"``body``." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:111 +msgid "" +"This looks very similar to the side to side motion we defined above, but in " +"this one, by using ``body`` to offset ``cos`` each vertex along the spine " +"has a different position in the wave making it look like a wave is moving " +"along the fish." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:117 +msgid "" +"The last motion is the twist, which is a panning roll along the spine. " +"Similarly to the pivot, we first construct a rotation matrix." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:126 +msgid "" +"We apply the rotation in the ``xy`` axes so that the fish appears to roll " +"around its spine. For this to work, the fish's spine needs to be centered on " +"the ``z`` axis." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:133 +msgid "Here is the fish with twist applied:" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:137 +msgid "" +"If we apply all these motions one after another, we get a fluid jelly-like " +"motion." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:141 +msgid "" +"Normal fish swim mostly with the back half of their body. Accordingly, we " +"need to limit the panning motions to the back half of the fish. To do this, " +"we create a new variable, ``mask``." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:144 +msgid "" +"``mask`` is a float that goes from ``0`` at the front of the fish to ``1`` " +"at the end using ``smoothstep`` to control the point at which the transition " +"from ``0`` to ``1`` happens." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:152 +msgid "Below is an image of the fish with ``mask`` used as ``COLOR``:" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:156 +msgid "" +"For the wave, we multiply the motion by ``mask`` which will limit it to the " +"back half." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:163 +msgid "" +"In order to apply the mask to the twist, we use ``mix``. ``mix`` allows us " +"to mix the vertex position between a fully rotated vertex and one that is " +"not rotated. We need to use ``mix`` instead of multiplying ``mask`` by the " +"rotated ``VERTEX`` because we are not adding the motion to the ``VERTEX`` we " +"are replacing the ``VERTEX`` with the rotated version. If we multiplied that " +"by ``mask``, we would shrink the fish." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:174 +msgid "Putting the four motions together gives us the final animation." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:178 +msgid "" +"Go ahead and play with the uniforms in order to alter the swim cycle of the " +"fish. You will find that you can create a wide variety of swim styles using " +"these four motions." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:182 +msgid "Making a school of fish" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:184 +msgid "" +"Godot makes it easy to render thousands of the same object using a " +"MultiMeshInstance node." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:186 +msgid "" +"A MultiMeshInstance node is created and used the same way you would make a " +"MeshInstance node. For this tutorial, we will name the MultiMeshInstance " +"node ``School``, because it will contain a school of fish." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:190 +msgid "" +"Once you have a MultiMeshInstance add a :ref:`MultiMesh `, " +"and to that MultiMesh add your :ref:`Mesh ` with the shader from " +"above." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:193 +msgid "" +"MultiMeshes draw your Mesh with three additional per-instance properties: " +"Transform (rotation, translation, scale), Color, and Custom. Custom is used " +"to pass in 4 multi-use variables using a :ref:`Color `." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:197 +msgid "" +"``instance_count`` specifies how many instances of the mesh you want to " +"draw. For now, leave ``instance_count`` at ``0`` because you cannot change " +"any of the other parameters while ``instance_count`` is larger than ``0``. " +"We will set ``instance count`` in GDScript later." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:201 +msgid "" +"``transform_format`` specifies whether the transforms used are 3D or 2D. For " +"this tutorial, select 3D." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:203 +msgid "" +"For both ``color_format`` and ``custom_data_format`` you can choose between " +"``None``, ``Byte``, and ``Float``. ``None`` means you won't be passing in " +"that data (either a per-instance ``COLOR`` variable, or ``INSTANCE_CUSTOM``) " +"to the shader. ``Byte`` means each number making up the color you pass in " +"will be stored with 8 bits while ``Float`` means each number will be stored " +"in a floating-point number (32 bits). ``Float`` is slower but more precise, " +"``Byte`` will take less memory and be faster, but you may see some visual " +"artifacts." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:210 +msgid "Now, set ``instance_count`` to the number of fish you want to have." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:212 +msgid "Next we need to set the per-instance transforms." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:214 +msgid "" +"There are two ways to set per-instance transforms for MultiMeshes. The first " +"is entirely in editor and is described in the :ref:`MultiMeshInstance " +"tutorial `." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:217 +msgid "" +"The second is to loop over all the instances and set their transforms in " +"code. Below, we use GDScript to loop over all the instances and set their " +"transform to a random position." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:227 +msgid "" +"Running this script will place the fish in random positions in a box around " +"the position of the MultiMeshInstance." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:230 +msgid "" +"If performance is an issue for you, try running the scene with GLES2 or with " +"fewer fish." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:232 +msgid "" +"Notice how all the fish are all in the same position in their swim cycle? It " +"makes them look very robotic. The next step is to give each fish a different " +"position in the swim cycle so the entire school looks more organic." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:237 +msgid "Animating a school of fish" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:239 +msgid "" +"One of the benefits of animating the fish using ``cos`` functions is that " +"they are animated with one parameter, ``time``. In order to give each fish a " +"unique position in the swim cycle, we only need to offset ``time``." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:243 +msgid "" +"We do that by adding the per-instance custom value ``INSTANCE_CUSTOM`` to " +"``time``." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:249 +msgid "" +"Next, we need to pass a value into ``INSTANCE_CUSTOM``. We do that by adding " +"one line into the ``for`` loop from above. In the ``for`` loop we assign " +"each instance a set of four random floats to use." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:257 +msgid "" +"Now the fish all have unique positions in the swim cycle. You can give them " +"a little more individuality by using ``INSTANCE_CUSTOM`` to make them swim " +"faster or slower by multiplying by ``TIME``." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:266 +msgid "" +"You can even experiment with changing the per-instance color the same way " +"you changed the per-instance custom value." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:269 +msgid "" +"One problem that you will run into at this point is that the fish are " +"animated, but they are not moving. You can move them by updating the per-" +"instance transform for each fish every frame. Although doing so will be " +"faster than moving thousands of MeshInstances per frame, it'll still likely " +"be slow." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/animating_thousands_of_fish.rst:274 +msgid "" +"In the next tutorial we will cover how to use :ref:`Particles " +"` to take advantage of the GPU and move each fish around " +"individually while still receiving the benefits of instancing." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:4 +msgid "Controlling thousands of fish with Particles" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:6 +msgid "" +"The problem with :ref:`MeshInstances ` is that it is " +"expensive to update their transform array. It is great for placing many " +"static objects around the scene. But it is still difficult to move the " +"objects around the scene." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:10 +msgid "" +"To make each instance move in an interesting way, we will use a :ref:" +"`Particles ` node. Particles take advantage of GPU " +"acceleration by computing and setting the per-instance information in a :ref:" +"`Shader `." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:14 +msgid "" +"Particles are not available in GLES2, instead use :ref:`CPUParticles " +"`, which do the same thing as Particles, but do not " +"benefit from GPU acceleration." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:17 +msgid "" +"First create a Particles node. Then, under \"Draw Passes\" set the " +"Particle's \"Draw Pass 1\" to your :ref:`Mesh `. Then under " +"\"Process Material\" create a new :ref:`ShaderMaterial " +"`." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:21 +msgid "Set the ``shader_type`` to ``particles``." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:27 +msgid "Then add the following two functions:" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:51 +msgid "" +"These functions come from the default :ref:`ParticlesMaterial " +"`. They are used to generate a random number from " +"each particle's ``RANDOM_SEED``." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:54 +msgid "" +"A unique thing about particle shaders is that some built-in variables are " +"saved across frames. ``TRANSFORM``, ``COLOR``, and ``CUSTOM`` can all be " +"accessed in the Spatial shader of the mesh, and also in the particle shader " +"the next time it is run." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:58 +msgid "" +"Next, setup your ``vertex`` function. Particles shaders only contain a " +"vertex function and no others." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:61 +msgid "" +"First we will distinguish between code that needs to be run only when the " +"particle system starts and code that should always run. We want to give each " +"fish a random position and a random animation offset when the system is " +"first run. To do so, we wrap that code in an ``if`` statement that checks " +"the built-in variable ``RESTART`` which becomes ``true`` for one frame when " +"the particle system is restarted." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:66 +msgid "From a high level, this looks like:" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:78 +msgid "" +"Next, we need to generate 4 random numbers: 3 to create a random position " +"and one for the random offset of the swim cycle." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:81 +msgid "" +"First, generate 4 seeds inside the ``RESTART`` block using the ``hash`` " +"function provided above:" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:90 +msgid "" +"Then, use those seeds to generate random numbers using ``rand_from_seed``:" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:99 +msgid "" +"Finally, assign ``position`` to ``TRANSFORM[3].xyz``, which is the part of " +"the transform that holds the position information." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:106 +msgid "Remember, all this code so far goes inside the ``RESTART`` block." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:108 +msgid "" +"The vertex shader for your mesh can stay the exact same as it was in the " +"previous tutorial." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:110 +msgid "" +"Now you can move each fish individually each frame, either by adding to the " +"``TRANSFORM`` directly or by writing to ``VELOCITY``." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:113 +msgid "Let's transform the fish by setting their ``VELOCITY``." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:119 +msgid "" +"This is the most basic way to set ``VELOCITY`` every particle (or fish) will " +"have the same velocity." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:121 +msgid "" +"Just by setting ``VELOCITY`` you can make the fish swim however you want. " +"For example, try the code below." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:128 +msgid "This will give each fish a unique speed between ``2`` and ``10``." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:130 +msgid "" +"If you used ``CUSTOM.y`` in the last tutorial, you can also set the speed of " +"the swim animation based on the ``VELOCITY``. Just use ``CUSTOM.y``." +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:137 +msgid "This code gives you the following behavior:" +msgstr "" + +#: ../../docs/tutorials/performance/vertex_animation/controlling_thousands_of_fish.rst:141 +msgid "" +"Using a ParticlesMaterial you can make the fish behavior as simple or " +"complex as you like. In this tutorial we only set Velocity, but in your own " +"Shaders you can also set ``COLOR``, rotation, scale (through ``TRANSFORM``). " +"Please refer to the :ref:`Particles Shader Reference ` " +"for more information on particle shaders." +msgstr "" + #: ../../docs/tutorials/performance/threads/thread_safe_apis.rst:4 msgid "Thread-safe APIs" msgstr "" @@ -52313,6 +53459,881 @@ msgid "" "normal gameplay." msgstr "" +#: ../../docs/tutorials/physics/interpolation/index.rst:4 +msgid "Physics Interpolation" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_quick_start_guide.rst:4 +msgid "Quick start guide" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_quick_start_guide.rst:6 +msgid "" +"Turn on physics interpolation: :ref:`ProjectSettings.physics/common/" +"physics_interpolation`" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_quick_start_guide.rst:7 +msgid "" +"Make sure you move objects and run your game logic in ``_physics_process()`` " +"rather than ``_process()``. This includes moving objects directly *and " +"indirectly* (by e.g. moving a parent, or using another mechanism to " +"automatically move nodes)." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_quick_start_guide.rst:8 +msgid "" +"Be sure to call :ref:`Node." +"reset_physics_interpolation` " +"on nodes *after* you first position or teleport them, to prevent " +"\"streaking\"" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_quick_start_guide.rst:9 +msgid "" +"Temporarily try setting :ref:`ProjectSettings.physics/common/" +"physics_fps` to " +"10 to see the difference with and without interpolation." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:7 +msgid "Physics ticks and rendered frames" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:9 +msgid "" +"One key concept to understand in Godot is the distinction between physics " +"ticks (sometimes referred to as iterations or physics frames), and rendered " +"frames. The physics proceeds at a fixed tick rate (set in :ref:" +"`ProjectSettings.physics/common/" +"physics_fps`), " +"which defaults to 60 ticks per second." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:11 +msgid "" +"However, the engine does not necessarily **render** at the same rate. " +"Although many monitors refresh at 60 Hz (cycles per second), many refresh at " +"completely different frequencies (e.g. 75 Hz, 144 Hz, 240 Hz or more). Even " +"though a monitor may be able to show a new frame e.g. 60 times a second, " +"there is no guarantee that the CPU and GPU will be able to *supply* frames " +"at this rate. For instance, when running with V-Sync, the computer may be " +"too slow for 60 and only reach the deadlines for 30 FPS, in which case the " +"frames you see will change at 30 FPS (resulting in stuttering)." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:13 +msgid "" +"But there is a problem here. What happens if the physics ticks do not " +"coincide with frames? What happens if the physics tick rate is out of phase " +"with the frame rate? Or worse, what happens if the physics tick rate is " +"*lower* than the rendered frame rate?" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:15 +msgid "" +"This problem is easier to understand if we consider an extreme scenario. If " +"you set the physics tick rate to 10 ticks per second, in a simple game with " +"a rendered frame rate of 60 FPS. If we plot a graph of the positions of an " +"object against the rendered frames, you can see that the positions will " +"appear to \"jump\" every 1/10th of a second, rather than giving a smooth " +"motion. When the physics calculates a new position for a new object, it is " +"not rendered in this position for just one frame, but for 6 frames." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:19 +msgid "" +"This jump can be seen in other combinations of tick / frame rate as " +"glitches, or jitter, caused by this staircasing effect due to the " +"discrepancy between physics tick time and rendered frame time." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:22 +msgid "What can we do about frames and ticks being out of sync?" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:25 +msgid "Lock the tick / frame rate together?" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:27 +msgid "" +"The most obvious solution is to get rid of the problem, by ensuring there is " +"a physics tick that coincides with every frame. This used to be the approach " +"on old consoles and fixed hardware computers. If you know that every player " +"will be using the same hardware, you can ensure it is fast enough to " +"calculate ticks and frames at e.g. 50 FPS, and you will be sure it will work " +"great for everybody." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:29 +msgid "" +"However, modern games are often no longer made for fixed hardware. You will " +"often be planning to release on desktop computers, mobiles and more, all of " +"which have huge variations in performance, as well as different monitor " +"refresh rates. We need to come up with a better way of dealing with the " +"problem." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:32 +msgid "Adapt the tick rate?" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:34 +msgid "" +"Instead of designing the game at a fixed physics tick rate, we could allow " +"the tick rate to scale according to the end users hardware. We could for " +"example use a fixed tick rate that works for that hardware, or even vary the " +"duration of each physics tick to match a particular frame duration." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:36 +msgid "" +"This works, but there is a problem. Physics (*and game logic*, which is " +"often also run in the ``_physics_process``) work best and most consistently " +"when run at a **fixed**, predetermined tick rate. If you attempt to run a " +"racing game physics that has been designed for 60 TPS (ticks per second) at " +"e.g. 10 TPS, the physics will behave completely differently. Controls may be " +"less responsive, collisions / trajectories can be completely different. You " +"may test your game thoroughly at 60 TPS, then find it breaks on end users " +"machines when it runs at a different tick rate." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:38 +msgid "" +"This can make quality assurance difficult with hard to reproduce bugs, " +"especially in AAA games where problems of this sort can be very costly. This " +"can also be problematic for multiplayer games for competitive integrity, as " +"running the game at certain tick rates may be more advantageous than others." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:41 +msgid "" +"Lock the tick rate, but use interpolation to smooth frames in between " +"physics ticks" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:43 +msgid "" +"This has become one of the most popular approaches to dealing with the " +"problem. It is supported by Godot 3.5 and later in 3D (although it is " +"optional and disabled by default)." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:45 +msgid "" +"We have established that the most desirable physics/game logic arrangement " +"for consistency and predictability is a physics tick rate that is fixed at " +"design-time. The problem is the discrepancy between the physics position " +"recorded, and where we \"want\" a physics object to be shown on a frame to " +"give smooth motion." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:47 +msgid "" +"The answer turns out to be simple, but can be a little hard to get your head " +"around at first." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:49 +msgid "" +"Instead of keeping track of just the current position of a physics object in " +"the engine, we keep track of *both the current position of the object, and " +"the previous position* on the previous physics tick." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:51 +msgid "" +"Why do we need the previous position *(in fact the entire transform, " +"including rotation and scaling)*? By using a little math magic, we can use " +"**interpolation** to calculate what the transform of the object would be " +"between those two points, in our ideal world of smooth continuous movement." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:56 +msgid "Linear interpolation" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:58 +msgid "" +"The simplest way to achieve this is linear interpolation, or lerping, which " +"you may have used before." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:60 +msgid "" +"Let us consider only the position, and a situation where we know that the " +"previous physics tick X coordinate was 10 units, and the current physics " +"tick X coordinate is 30 units." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:62 +msgid "" +"Although the maths is explained here, you do not have to worry about the " +"details, as this step will be performed for you. Under the hood, Godot may " +"use more complex forms of interpolation, but linear interpolation is the " +"easiest in terms of explanation." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:65 +msgid "The physics interpolation fraction" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:67 +msgid "" +"If our physics ticks are happening 10 times per second (for this example), " +"what happens if our rendered frame takes place at time 0.12 seconds? We can " +"do some math to figure out where the object would be to obtain a smooth " +"motion between the two ticks." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:69 +msgid "" +"First of all, we have to calculate how far through the physics tick we want " +"the object to be. If the last physics tick took place at 0.1 seconds, we are " +"0.02 seconds *(0.12 - 0.1)* through a tick that we know will take 0.1 " +"seconds (10 ticks per second). The fraction through the tick is thus:" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:76 +msgid "" +"This is called the **physics interpolation fraction**, and is handily " +"calculated for you by Godot. It can be retrieved on any frame by calling :" +"ref:`Engine." +"get_physics_interpolation_fraction`." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:79 +msgid "Calculating the interpolated position" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:81 +msgid "" +"Once we have the interpolation fraction, we can insert it into a standard " +"linear interpolation equation. The X coordinate would thus be:" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:87 +msgid "So substituting our ``x_prev`` as 10, and ``x_curr`` as 30:" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:95 +msgid "Let's break that down:" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:97 +msgid "" +"We know the X starts from the coordinate on the previous tick (``x_prev``) " +"which is 10 units." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:98 +msgid "" +"We know that after the full tick, the difference between the current tick " +"and the previous tick will have been added (``x_curr - x_prev``) (which is " +"20 units)." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:99 +msgid "" +"The only thing we need to vary is the proportion of this difference we add, " +"according to how far we are through the physics tick." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:101 +msgid "" +"Although this example interpolates the position, the same thing can be done " +"with the rotation and scale of objects. It is not necessary to know the " +"details as Godot will do all this for you." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:104 +msgid "Smoothed transformations between physics ticks?" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:106 +msgid "" +"Putting all this together shows that it should be possible to have a nice " +"smooth estimation of the transform of objects between the current and " +"previous physics tick." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:108 +msgid "" +"But wait, you may have noticed something. If we are interpolating between " +"the current and previous ticks, we are not estimating the position of the " +"object *now*, we are estimating the position of the object in the past. To " +"be exact, we are estimating the position of the object *between 1 and 2 " +"ticks* into the past." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:111 +msgid "In the past" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:113 +msgid "" +"What does this mean? This scheme does work, but it does mean we are " +"effectively introducing a delay between what we see on the screen, and where " +"the objects *should* be." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:115 +msgid "" +"In practice, most people won't notice this delay, or rather, it is typically " +"not *objectionable*. There are already significant delays involved in games, " +"we just don't typically notice them. The most significant effect is there " +"can be a slight delay to input, which can be a factor in fast twitch games. " +"In some of these fast input situations, you may wish to turn off physics " +"interpolation and use a different scheme, or use a high tick rate, which " +"mitigates these delays." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:118 +msgid "Why look into the past? Why not predict the future?" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:120 +msgid "" +"There is an alternative to this scheme, which is: instead of interpolating " +"between the previous and current tick, we use maths to *extrapolate* into " +"the future. We try to predict where the object *will be*, rather than show " +"it where it was. This can be done and may be offered as an option in future, " +"but there are some significant downsides:" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:122 +msgid "" +"The prediction may not be correct, especially when an object collides with " +"another object during the physics tick." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:123 +msgid "" +"Where a prediction was incorrect, the object may extrapolate into an " +"\"impossible\" position, like inside a wall." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:124 +msgid "" +"Providing the movement speed is slow, these incorrect predictions may not be " +"too much of a problem." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:125 +msgid "" +"When a prediction was incorrect, the object may have to jump or snap back " +"onto the corrected path. This can be visually jarring." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:128 +msgid "Fixed timestep interpolation" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:130 +msgid "" +"In Godot this whole system is referred to as physics interpolation, but you " +"may also hear it referred to as **\"fixed timestep interpolation\"**, as it " +"is interpolating between objects moved with a fixed timestep (physics ticks " +"per second). In some ways the second term is more accurate, because it can " +"also be used to interpolate objects that are not driven by physics." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/physics_interpolation_introduction.rst:132 +msgid "" +"Although physics interpolation is usually a good choice, there are " +"exceptions where you may choose not to use Godot's built-in physics " +"interpolation (or use it in a limited fashion). An example category is " +"internet multiplayer games. Multiplayer games often receive tick or timing " +"based information from other players or a server and these may not coincide " +"with local physics ticks, so a custom interpolation technique can often be a " +"better fit." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:4 +msgid "Using physics interpolation" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:5 +msgid "" +"How do we incorporate physics interpolation into a Godot game? Are there any " +"caveats?" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:7 +msgid "" +"We have tried to make the system as easy to use as possible, and many " +"existing games will work with few changes. That said there are some " +"situations which require special treatment, and these will be described." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:10 +msgid "Turn on the physics interpolation setting" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:12 +msgid "" +"The first step is to turn on physics interpolation in :ref:`ProjectSettings." +"physics/common/physics_interpolation`. You can now run your game." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:14 +msgid "" +"It is likely that nothing looks hugely different, particularly if you are " +"running physics at 60 TPS or a multiple of it. However, quite a bit more is " +"happening behind the scenes." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:18 +msgid "" +"To convert an existing game to use interpolation, it is highly recommended " +"that you temporarily set :ref:`ProjectSettings.physics/common/" +"physics_fps` to a " +"low value such as 10, which will make interpolation problems more obvious." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:21 +msgid "Move (almost) all game logic from _process to _physics_process" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:23 +msgid "" +"The most fundamental requirement for physics interpolation (which you may be " +"doing already) is that you should be moving and performing game logic on " +"your objects within ``_physics_process`` (which runs at a physics tick) " +"rather than ``_process`` (which runs on a rendered frame). This means your " +"scripts should typically be doing the bulk of their processing within " +"``_physics_process``, including responding to input and AI." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:25 +msgid "" +"Setting the transform of objects only within physics ticks allows the " +"automatic interpolation to deal with transforms *between* physics ticks, and " +"ensures the game will run the same whatever machine it is run on. As a " +"bonus, this also reduces CPU usage if the game is rendering at high FPS, " +"since AI logic (for example) will no longer run on every rendered frame." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:27 +msgid "" +"If you attempt to set the transform of interpolated objects *outside* the " +"physics tick, the calculations for the interpolated position will be " +"incorrect, and you will get jitter. This jitter may not be visible on your " +"machine, but it *will* occur for some players. For this reason, setting the " +"transform of interpolated objects should be avoided outside of the physics " +"tick. Godot will attempt to produce warnings in the editor if this case is " +"detected." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:29 +msgid "" +"This is only a *soft-rule*. There are some occasions where you might want to " +"teleport objects outside of the physics tick (for instance when starting a " +"level, or respawning objects). Still, in general, you should be applying " +"transforms from the physics tick." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:33 +msgid "Ensure that all indirect movement happens during physics ticks" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:35 +msgid "" +"Consider that in Godot, Nodes can be moved not just directly in your own " +"scripts, but also by automatic methods such as tweening, animation, and " +"navigation. All these methods should also have their timing set to operate " +"on the physics tick rather than each frame (\"idle\"), **if** you are using " +"them to move objects (*these methods can also be used to control properties " +"that are not interpolated*)." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:37 +msgid "" +"Also consider that nodes can be moved not just by moving themselves, but " +"also by moving parent nodes in the :ref:`SceneTree`. The " +"movement of parents should therefore also only occur during physics ticks." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:40 +msgid "Choose a physics tick rate" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:42 +msgid "" +"When using physics interpolation, the rendering is decoupled from physics, " +"and you can choose any value that makes sense for your game. You are no " +"longer limited to values that are multiples of the user's monitor refresh " +"rate (for stutter-free gameplay if the target FPS is reached)." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:44 +msgid "As a rough guide:" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:1 +msgid "Low tick rates (10-30)" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:1 +msgid "Medium tick rates (30-60)" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:1 +msgid "High tick rates (60+)" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:1 +msgid "Better CPU performance" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:1 +msgid "Good physics behaviour in complex scenes" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:1 +msgid "Good with fast physics" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:1 +msgid "Add some delay to input" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:1 +msgid "Good for first person games" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:1 +msgid "Good for racing games" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:1 +msgid "Simple physics behaviour" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:54 +msgid "" +"You can always change the tick rate as you develop, it is as simple as " +"changing the project setting." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:57 +msgid "Call reset_physics_interpolation() when teleporting objects" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:59 +msgid "" +"Most of the time, interpolation is what you want between two physics ticks. " +"However, there is one situation in which it may *not* be what you want. That " +"is when you are initially placing objects, or moving them to a new location. " +"Here, you don't want a smooth motion between the two - you want an " +"instantaneous move." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:61 +msgid "" +"The solution to this is to call the :ref:`Node." +"reset_physics_interpolation` " +"function. You should call this function on a Node *after* setting the " +"position/transform. The rest is done for you automatically." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:63 +msgid "" +"Even if you forget to call this, it is not usually a problem in most " +"situations (especially at high tick rates). This is something you can easily " +"leave to the polishing phase of your game. The worst that will happen is " +"seeing a streaking motion for a frame or so when you move them - you will " +"know when you need it!" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:65 +msgid "" +"You should call ``reset_physics_interpolation()`` *after* setting the new " +"position, rather than before. Otherwise, you will still see the unwanted " +"streaking motion." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:68 +msgid "Testing and debugging tips" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:70 +msgid "" +"Even if you intend to run physics at 60 TPS, in order to thoroughly test " +"your interpolation and get the smoothest gameplay, it is highly recommended " +"to temporarily set the physics tick rate to a low value such as 10 TPS." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:72 +msgid "" +"The gameplay may not work perfectly, but it should enable you to more easily " +"see cases where you should be calling :ref:`Node." +"reset_physics_interpolation`, " +"or where you should be using your own custom interpolation on e.g. a :ref:" +"`Camera`. Once you have these cases fixed, you can set the " +"physics tick rate back to the desired setting." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/using_physics_interpolation.rst:74 +msgid "" +"The other great advantage to testing at a low tick rate is you can often " +"notice other game systems that are synchronized to the physics tick and " +"creating glitches which you may want to work around. Typical examples " +"include setting animation blend values, which you may decide to set in " +"``_process()`` and interpolate manually." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:4 +msgid "Advanced physics interpolation" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:6 +msgid "" +"Although the previous instructions will give satisfactory results in a lot " +"of games, in some cases you will want to go a stage further to get the best " +"possible results and the smoothest possible experience." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:9 +msgid "Exceptions to automatic physics interpolation" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:11 +msgid "" +"Even with physics interpolation active, there may be some local situations " +"where you would benefit from disabling automatic interpolation for a :ref:" +"`Node` (or branch of the :ref:`SceneTree`), and " +"have the finer control of performing interpolation manually." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:13 +msgid "" +"This is possible using the :ref:`Node." +"physics_interpolation_mode` " +"property which is present in all Nodes. If you for example, turn off " +"interpolation for a Node, the children will recursively also be affected (as " +"they default to inheriting the parent setting). This means you can easily " +"disable interpolation for an entire subscene." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:15 +msgid "" +"The most common situation where you may want to perform your own " +"interpolation is Cameras." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:20 +msgid "" +"In many cases, a :ref:`Camera` can use automatic interpolation " +"just like any other node. However, for best results, especially at low " +"physics tick rates, it is recommended that you take a manual approach to " +"Camera interpolation." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:22 +msgid "" +"This is because viewers are very sensitive to Camera movement. For instance, " +"a Camera that realigns slightly every 1/10th of a second (at 10tps tick " +"rate) will often be noticeable. You can get a much smoother result by moving " +"the Camera each frame in ``_process``, and following an interpolated target " +"manually." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:25 +msgid "Manual Camera interpolation" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:27 +msgid "**Ensure the Camera is using global coordinate space**" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:29 +msgid "" +"The very first step when performing manual Camera interpolation is to make " +"sure the Camera transform is specified in *global space* rather than " +"inheriting the transform of a moving parent. This is because feedback can " +"occur between the movement of a parent node of a Camera and the movement of " +"the Camera Node itself, which can mess up the interpolation." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:31 +msgid "There are two ways of doing this:" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:33 +msgid "" +"Move the Camera so it is independent on its own branch, rather than being a " +"child of a moving object." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:37 +msgid "" +"Call :ref:`Spatial.set_as_toplevel` " +"and set this to ``true``, which will make the Camera ignore the transform of " +"its parent." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:40 +msgid "Typical example" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:42 +msgid "" +"A typical example of a custom approach is to use the ``look_at`` function in " +"the Camera every frame in ``_process()`` to look at a target node (such as " +"the player)." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:44 +msgid "" +"But there is a problem. If we use the traditional ``get_global_transform()`` " +"on a Camera \"target\" Node, this transform will only focus the Camera on " +"the target *at the current physics tick*. This is *not* what we want, as the " +"Camera will jump about on each physics tick as the target moves. Even though " +"the Camera may be updated each frame, this does not help give smooth motion " +"if the *target* is only changing each physics tick." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:47 +msgid "get_global_transform_interpolated()" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:49 +msgid "" +"What we really want to focus the Camera on, is not the position of the " +"target on the physics tick, but the *interpolated* position, i.e. the " +"position at which the target will be rendered." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:51 +msgid "" +"We can do this using the :ref:`Spatial." +"get_global_transform_interpolated` " +"function. This acts exactly like getting :ref:`Spatial." +"global_transform` but it gives you " +"the *interpolated* transform (during a ``_process()`` call)." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:53 +msgid "" +"``get_global_transform_interpolated()`` should only be used once or twice " +"for special cases such as Cameras. It should **not** be used all over the " +"place in your code (both for performance reasons, and to give correct " +"gameplay)." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:55 +msgid "" +"Aside from exceptions like the Camera, in most cases, your game logic should " +"be in ``_physics_process()``. In game logic you should be calling " +"``get_global_transform()`` or ``get_transform()``, which will give the " +"current physics transform (in global or local space respectively), which is " +"usually what you will want for gameplay code." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:58 +msgid "Example manual Camera script" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:60 +msgid "" +"Here is an example of a simple fixed Camera which follows an interpolated " +"target:" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:92 +msgid "Mouse look" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:94 +msgid "" +"Mouse look is a very common way of controlling Cameras. But there is a " +"problem. Unlike keyboard input which can be sampled periodically on the " +"physics tick, mouse move events can come in continuously. The Camera will be " +"expected to react and follow these mouse movements on the next frame, rather " +"than waiting until the next physics tick." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:96 +msgid "" +"In this situation, it can be better to disable physics interpolation for the " +"Camera node (using :ref:`Node." +"physics_interpolation_mode`) " +"and directly apply the mouse input to the Camera rotation, rather than apply " +"it in ``_physics_process``." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:98 +msgid "" +"Sometimes, especially with Cameras, you will want to use a combination of " +"interpolation and non-interpolation:" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:100 +msgid "" +"A first person camera may position the camera at a player location (perhaps " +"using :ref:`Spatial." +"get_global_transform_interpolated`), " +"but control the Camera rotation from mouse look *without* interpolation." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:101 +msgid "" +"A third person camera may similarly determine the look at (target location) " +"of the camera using :ref:`Spatial." +"get_global_transform_interpolated`, " +"but position the camera using mouse look *without* interpolation." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:103 +msgid "" +"There are many permutations and variations of Camera types, but it should be " +"clear that in many cases, disabling automatic physics interpolation and " +"handling this yourself can give a better result." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:106 +msgid "Disabling interpolation on other nodes" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:108 +msgid "" +"Although Cameras are the most common example, there are a number of cases " +"when you may wish other nodes to control their own interpolation, or be non-" +"interpolated. Consider for example, a player in a top view game whose " +"rotation is controlled by mouse look. Disabling physics rotation allows the " +"player rotation to match the mouse in real-time." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:114 +msgid "" +"Although most visual Nodes follow the single Node single visual instance " +"paradigm, MultiMeshes can control several instances from the same Node. " +"Therefore, they have some extra functions for controlling interpolation " +"functionality on a *per-instance* basis. You should explore these functions " +"if you are using interpolated MultiMeshes." +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:116 +msgid "" +":ref:`MultiMesh." +"reset_instance_physics_interpolation`" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:117 +msgid "" +":ref:`MultiMesh." +"set_as_bulk_array_interpolated`" +msgstr "" + +#: ../../docs/tutorials/physics/interpolation/advanced_physics_interpolation.rst:119 +msgid "" +"Full details are in the :ref:`MultiMesh` documentation." +msgstr "" + #: ../../docs/tutorials/platform/android/index.rst:2 msgid "Android plugins" msgstr "" @@ -54235,7 +56256,7 @@ msgstr "" #: ../../docs/tutorials/platform/customizing_html5_shell.rst:60 msgid "" "The following optional placeholders will enable some extra features in your " -"cusstom HTML template." +"custom HTML template." msgstr "" #: ../../docs/tutorials/platform/customizing_html5_shell.rst:62 @@ -54559,15 +56580,27 @@ msgstr "" #: ../../docs/tutorials/platform/consoles.rst:68 msgid "" -"`Pineapple Works `_ offers Switch, Xbox One and " -"Xbox Series X/S porting and publishing of Godot games." +"`Pineapple Works `_ offers Switch, Xbox One & Xbox " +"Series X/S (GDK) porting and publishing of Godot games (GDScript/C#)." msgstr "" -#: ../../docs/tutorials/platform/consoles.rst:71 +#: ../../docs/tutorials/platform/consoles.rst:70 msgid "" -"If your company offers porting and/or publishing services for Godot games, " -"feel free to `open an issue or pull request `_ to add your company to the list above." +"`RAWRLAB games `_ offers Switch porting of Godot " +"games." +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:72 +msgid "" +"`mazette! games `_ offers Switch, Xbox One and Xbox " +"Series X/S porting and publishing of Godot games." +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:75 +msgid "" +"If your company offers porting, or porting *and* publishing services for " +"Godot games, feel free to `open an issue or pull request `_ to add your company to the list above." msgstr "" #: ../../docs/tutorials/platform/mobile_rendering_limitations.rst:4 @@ -54905,14 +56938,22 @@ msgid "" msgstr "" #: ../../docs/tutorials/plugins/editor/making_plugins.rst:44 -msgid "To continue with the example, use the following values::" +msgid "To continue with the example, use the following values:" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:55 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:71 +msgid "" +"Unchecking the ``Activate now?`` option in C# is always required because, " +"like every other C# script, the EditorPlugin script needs to be compiled " +"which requires building the project. After building the project the plugin " +"can be enabled in the ``Plugins`` tab of ``Project Settings``." +msgstr "" + +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:76 msgid "You should end up with a directory structure like this:" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:59 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:80 msgid "" "``plugin.cfg`` is a simple INI file with metadata about your plugin. The " "name and description help people understand what it does. Your name helps " @@ -54923,11 +56964,11 @@ msgid "" "editor once it is active." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:68 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:89 msgid "The script file" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:70 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:91 msgid "" "Upon creation of the plugin, the dialog will automatically open the " "EditorPlugin script for you. The script has two requirements that you cannot " @@ -54935,14 +56976,14 @@ msgid "" "the editor, and it must inherit from :ref:`class_EditorPlugin`." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:77 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:98 msgid "" "In addition to the EditorPlugin script, any other GDScript that your plugin " "uses must *also* be a tool. Any GDScript without ``tool`` imported into the " "editor will act like an empty file!" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:81 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:102 msgid "" "It's important to deal with initialization and clean-up of resources. A good " "practice is to use the virtual function :ref:`_enter_tree() " @@ -54952,15 +56993,15 @@ msgid "" "something like this:" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:126 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:147 msgid "This is a good template to use when creating new plugins." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:129 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:150 msgid "A custom node" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:131 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:152 msgid "" "Sometimes you want a certain behavior in many nodes, such as a custom scene " "or control that can be reused. Instancing is helpful in a lot of cases, but " @@ -54969,7 +57010,7 @@ msgid "" "a custom behavior." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:139 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:160 msgid "" "Nodes added via an EditorPlugin are \"CustomType\" nodes. While they work " "with any scripting language, they have fewer features than :ref:`the Script " @@ -54977,7 +57018,7 @@ msgid "" "or NativeScript, we recommend using Script Classes instead." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:144 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:165 msgid "" "To create a new node type, you can use the function :ref:`add_custom_type() " "` from the :ref:" @@ -54988,14 +57029,14 @@ msgid "" "editor." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:151 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:172 msgid "" "For this tutorial, we'll create a simple button that prints a message when " "clicked. For that, we'll need a simple script that extends from :ref:" "`class_Button`. It could also extend :ref:`class_BaseButton` if you prefer:" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:189 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:210 msgid "" "That's it for our basic button. You can save this as ``my_button.gd`` inside " "the plugin folder. You'll also need a 16×16 icon to show in the scene tree. " @@ -55005,36 +57046,36 @@ msgid "" "desired." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:197 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:218 msgid "" "Now, we need to add it as a custom type so it shows on the **Create New " "Node** dialog. For that, change the ``custom_node.gd`` script to the " "following:" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:245 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:266 msgid "" "With that done, the plugin should already be available in the plugin list in " "the **Project Settings**, so activate it as explained in `Checking the " "results`_." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:248 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:269 msgid "Then try it out by adding your new node:" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:252 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:273 msgid "" "When you add the node, you can see that it already has the script you " "created attached to it. Set a text to the button, save and run the scene. " "When you click the button, you can see some text in the console:" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:259 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:280 msgid "A custom dock" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:261 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:282 msgid "" "Sometimes, you need to extend the editor and add tools that are always " "available. An easy way to do it is to add a new dock with a plugin. Docks " @@ -55042,28 +57083,28 @@ msgid "" "usual GUI scenes." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:265 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:286 msgid "" "Creating a custom dock is done just like a custom node. Create a new " "``plugin.cfg`` file in the ``addons/my_custom_dock`` folder, then add the " "following content to it:" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:290 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:311 msgid "" "Then create the script ``custom_dock.gd`` in the same folder. Fill it with " "the :ref:`template we've seen before ` to " "get a good start." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:294 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:315 msgid "" "Since we're trying to add a new custom dock, we need to create the contents " "of the dock. This is nothing more than a standard Godot scene: just create a " "new scene in the editor then edit it." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:298 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:319 msgid "" "For an editor dock, the root node **must** be a :ref:`Control " "` or one of its child classes. For this tutorial, you can " @@ -55072,7 +57113,7 @@ msgid "" "Also, don't forget to add some text to your button." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:306 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:327 msgid "" "Save this scene as ``my_dock.tscn``. Now, we need to grab the scene we " "created then add it as a dock in the editor. For this, you can rely on the " @@ -55081,24 +57122,24 @@ msgid "" "` class." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:311 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:332 msgid "" "You need to select a dock position and define the control to add (which is " "the scene you just created). Don't forget to **remove the dock** when the " "plugin is deactivated. The script could look like this:" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:372 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:393 msgid "" "Note that, while the dock will initially appear at its specified position, " "the user can freely change its position and save the resulting layout." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:376 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:397 msgid "Checking the results" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:378 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:399 msgid "" "It's now time to check the results of your work. Open the **Project " "Settings** and click on the **Plugins** tab. Your plugin should be the only " @@ -55106,18 +57147,18 @@ msgid "" "top-right corner." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:385 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:406 msgid "" "You can see the plugin is inactive on the **Status** column; click on the " "status to select **Active**. The dock should become visible before you even " "close the settings window. You should now have a custom dock:" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:392 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:413 msgid "Going beyond" msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:394 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:415 msgid "" "Now that you've learned how to make basic plugins, you can extend the editor " "in several ways. Lots of functionality can be added to the editor with " @@ -55125,13 +57166,35 @@ msgid "" "to delve into C++ modules." msgstr "" -#: ../../docs/tutorials/plugins/editor/making_plugins.rst:399 +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:420 msgid "" "You can make your own plugins to help yourself and share them in the `Asset " "Library `_ so that people can " "benefit from your work." msgstr "" +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:427 +msgid "Registering autoloads/singletons in plugins" +msgstr "" + +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:429 +msgid "" +"It is possible for editor plugins to automatically register :ref:`autoloads " +"` when the plugin is enabled. This also includes " +"unregistering the autoload when the plugin is disabled." +msgstr "" + +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:433 +msgid "" +"This makes setting up plugins faster for users, as they no longer have to " +"manually add autoloads to their project settings if your editor plugin " +"requires the use of an autoload." +msgstr "" + +#: ../../docs/tutorials/plugins/editor/making_plugins.rst:437 +msgid "Use the following code to register a singleton from an editor plugin:" +msgstr "" + #: ../../docs/tutorials/plugins/editor/making_main_screen_plugins.rst:4 msgid "Making main screen plugins" msgstr "" @@ -56847,30 +58910,17 @@ msgid "" "**Stretch Aspect** setting has no effect." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:133 -msgid "" -"This is a good option if you want full control over every screen pixel, and " -"is probably the best option for 3D games." -msgstr "" - -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:138 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:135 msgid "" "**Stretch Mode = 2D**: In this mode, the base size specified in width and " "height in the project settings is stretched to cover the whole screen " "(taking the **Stretch Aspect** setting into account). This means that " -"everything is rendered directly at the target resolution. 3D is largely " -"unaffected, while in 2D, there is no longer a 1:1 correspondence between " -"sprite pixels and screen pixels, which may result in scaling artifacts." +"everything is rendered directly at the target resolution. 3D is unaffected, " +"while in 2D, there is no longer a 1:1 correspondence between sprite pixels " +"and screen pixels, which may result in scaling artifacts." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:146 -msgid "" -"This is a good option if your 2D artwork has a sufficiently high resolution " -"and does not require pixel-perfect rendering. Consider enabling texture " -"filtering and mipmapping on your 2D textures and fonts." -msgstr "" - -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:153 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:145 msgid "" "**Stretch Mode = Viewport**: Viewport scaling means that the size of the " "root :ref:`Viewport ` is set precisely to the base size " @@ -56879,23 +58929,17 @@ msgid "" "screen (taking the **Stretch Aspect** setting into account)." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:160 -msgid "" -"This mode is useful when working with pixel-precise games, or for the sake " -"of rendering to a lower resolution to improve performance." -msgstr "" - -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:166 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:155 msgid "Stretch Aspect" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:168 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:157 msgid "" "The second setting is the stretch aspect. Note that this only takes effect " "if **Stretch Mode** is set to something other than **Disabled**." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:171 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:160 msgid "" "In the animations below, you will notice gray and black areas. The black " "areas are added by the engine and cannot be drawn into. The gray areas are " @@ -56903,7 +58947,7 @@ msgid "" "region outside the blue frame you see in the 2D editor." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:176 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:165 msgid "" "**Stretch Aspect = Ignore**: Ignore the aspect ratio when stretching the " "screen. This means that the original resolution will be stretched to exactly " @@ -56911,7 +58955,7 @@ msgid "" "nonuniform stretching: things looking wider or taller than designed." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:184 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:173 msgid "" "**Stretch Aspect = Keep**: Keep aspect ratio when stretching the screen. " "This means that the viewport retains its original size regardless of the " @@ -56919,13 +58963,13 @@ msgid "" "screen (\"letterboxing\") or the sides (\"pillarboxing\")." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:190 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:179 msgid "" "This is a good option if you know the aspect ratio of your target devices in " "advance, or if you don't want to handle different aspect ratios." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:196 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:185 msgid "" "**Stretch Aspect = Keep Width**: Keep aspect ratio when stretching the " "screen. If the screen is wider than the base size, black bars are added at " @@ -56935,13 +58979,13 @@ msgid "" "\"Expand Vertically\"." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:203 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:192 msgid "" "This is usually the best option for creating GUIs or HUDs that scale, so " "some controls can be anchored to the bottom (:ref:`doc_size_and_anchors`)." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:209 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:198 msgid "" "**Stretch Aspect = Keep Height**: Keep aspect ratio when stretching the " "screen. If the screen is taller than the base size, black bars are added at " @@ -56951,13 +58995,13 @@ msgid "" "\"Expand Horizontally\"." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:216 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:205 msgid "" "This is usually the best option for 2D games that scroll horizontally (like " "runners or platformers)." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:221 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:210 msgid "" "**Stretch Aspect = Expand**: Keep aspect ratio when stretching the screen, " "but keep neither the base width nor height. Depending on the screen aspect " @@ -56966,7 +59010,7 @@ msgid "" "screen is taller than the original size)." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:232 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:221 msgid "" "To support both portrait and landscape mode with a similar automatically " "determined scale factor, set your project's base resolution to be a *square* " @@ -56976,31 +59020,31 @@ msgid "" "Project Settings." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:239 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:228 msgid "" "To allow the user to choose their preferred screen orientation at run-time, " "remember to set **Display > Window > Handheld > Orientation** to ``sensor``." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:243 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:232 msgid "Stretch Shrink" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:245 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:234 msgid "" "The **Shrink** setting allows you to add an extra scaling factor on top of " "what the **Stretch** options above already provide. The default value of 1 " "means that no scaling occurs." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:249 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:238 msgid "" "If, for example, you set **Shrink** to 4 and leave **Stretch Mode** on " "**Disabled**, each unit in your scene will correspond to 4×4 pixels on the " "screen." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:253 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:242 msgid "" "If **Stretch Mode** is set to something other than **Disabled**, the size of " "the root viewport is scaled down by the **Shrink** factor, and pixels in the " @@ -57009,43 +59053,43 @@ msgid "" "lower resolution." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:260 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:249 msgid "From scripts" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:262 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:251 msgid "" "To configure stretching at runtime from a script, use the ``get_tree()." "set_screen_stretch()`` method (see :ref:`SceneTree.set_screen_stretch() " "`)." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:267 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:256 msgid "Common use case scenarios" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:269 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:258 msgid "" "The following settings are recommended to support multiple resolutions and " "aspect ratios well." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:273 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:262 msgid "Desktop game" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:275 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:264 msgid "**Non-pixel art:**" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:277 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:266 msgid "" "Set the base window width to ``1920`` and window height to ``1080``. If you " "have a display smaller than 1920×1080, set **Test Width** and **Test " "Height** to lower values to make the window smaller when the project starts." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:280 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:269 msgid "" "Alternatively, if you're targeting high-end devices primarily, set the base " "window width to ``3840`` and window height to ``2160``. This allows you to " @@ -57056,34 +59100,34 @@ msgid "" "`doc_multiple_resolutions_reducing_aliasing_on_downsampling`." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:287 -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:334 -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:353 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:276 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:323 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:342 msgid "Set the stretch mode to ``2d``." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:288 -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:335 -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:354 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:277 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:324 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:343 msgid "" "Set the stretch aspect to ``expand``. This allows for supporting multiple " "aspect ratios and makes better use of tall smartphone displays (such as 18:9 " "or 19:9 aspect ratios)." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:290 -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:337 -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:356 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:279 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:326 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:345 msgid "" "Configure Control nodes' anchors to snap to the correct corners using the " "**Layout** menu." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:292 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:281 msgid "**Pixel art:**" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:294 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:283 msgid "" "Set the base window size to the viewport size you intend to use. Most pixel " "art games use viewport sizes between 256×224 and 640×480. Higher viewport " @@ -57091,24 +59135,24 @@ msgid "" "show more of the game world at a given time." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:298 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:287 msgid "Set the stretch mode to ``viewport``." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:299 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:288 msgid "" "Set the stretch aspect to ``keep`` to enforce a single aspect ratio (with " "black bars). As an alternative, you can set the stretch aspect to ``expand`` " "to support multiple aspect ratios." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:302 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:291 msgid "" "If using the ``expand`` stretch aspect, Configure Control nodes' anchors to " "snap to the correct corners using the **Layout** menu." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:307 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:296 msgid "" "The ``viewport`` stretch mode provides low-resolution rendering that is then " "stretched to the final window size. If you are OK with sprites being able to " @@ -57117,7 +59161,7 @@ msgid "" "``viewport`` stretch mode." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:313 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:302 msgid "" "Godot currently doesn't have a way to enforce integer scaling when using the " "``2d`` or ``viewport`` stretch mode, which means pixel art may look bad if " @@ -57126,21 +59170,21 @@ msgid "" "com/Yukitty/godot-addon-integer_resolution_handler>`__." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:319 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:308 msgid "Mobile game in landscape mode" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:321 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:310 msgid "" "Godot is configured to use landscape mode by default. This means you don't " "need to change the display orientation project setting." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:324 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:313 msgid "Set the base window width to ``1280`` and window height to ``720``." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:325 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:314 msgid "" "Alternatively, if you're targeting high-end devices primarily, set the base " "window width to ``1920`` and window height to ``1080``. This allows you to " @@ -57153,15 +59197,15 @@ msgid "" "`doc_multiple_resolutions_reducing_aliasing_on_downsampling`." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:340 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:329 msgid "Mobile game in portrait mode" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:342 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:331 msgid "Set the base window width to ``720`` and window height to ``1080``." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:343 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:332 msgid "" "Alternatively, if you're targeting high-end devices primarily, set the base " "window width to ``1080`` and window height to ``1920``. This allows you to " @@ -57174,39 +59218,39 @@ msgid "" "`doc_multiple_resolutions_reducing_aliasing_on_downsampling`." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:352 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:341 msgid "Set **Display > Window > Handheld > Orientation** to ``portrait``." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:359 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:348 msgid "Non-game application" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:361 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:350 msgid "" "Set the base window width and height to the smallest window size that you " "intend to target. This is not required, but this ensures that you design " "your UI with small window sizes in mind." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:363 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:352 msgid "Keep the stretch mode to its default value, ``disabled``." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:364 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:353 msgid "" "Keep the stretch aspect to its default value, ``ignore`` (its value won't be " "used since the stretch mode is ``disabled``)." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:366 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:355 msgid "" "You can define a minimum window size by setting ``OS.min_window_size`` in a " "script's ``_ready()`` function. This prevents the user from resizing the " "application below a certain size, which could break the UI layout." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:372 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:361 msgid "" "Godot doesn't support manually overriding the 2D scale factor yet, so it is " "not possible to have hiDPI support in non-game applications. Due to this, it " @@ -57214,11 +59258,11 @@ msgid "" "allow for the OS to use its low-DPI fallback." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:378 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:367 msgid "hiDPI support" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:380 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:369 msgid "" "By default, Godot projects aren't considered DPI-aware by the operating " "system. This is done to improve performance on low-end systems, since the " @@ -57226,7 +59270,7 @@ msgid "" "application scale itself (even when using the ``viewport`` stretch mode)." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:385 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:374 msgid "" "However, the OS-provided DPI fallback scaling doesn't play well with " "fullscreen mode. If you want crisp visuals on hiDPI displays or if project " @@ -57234,24 +59278,24 @@ msgid "" "Hidpi** in the Project Settings." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:390 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:379 msgid "" "**Allow Hidpi** is only effective on Windows and macOS. It's ignored on all " "other platforms." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:395 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:384 msgid "" "The Godot editor itself is always marked as DPI-aware. Running the project " "from the editor will only be DPI-aware if **Allow Hidpi** is enabled in the " "Project Settings." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:402 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:391 msgid "Reducing aliasing on downsampling" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:404 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:393 msgid "" "If the game has a very high base resolution (e.g. 3840×2160), aliasing might " "appear when downsampling to something considerably lower like 1280×720. " @@ -57260,18 +59304,18 @@ msgid "" "data is loaded::" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:412 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:401 msgid "" "Alternatively, you can also enable mipmaps on all your 2D textures. However, " "enabling mipmaps will increase memory usage which may be problematic on low-" "end mobile devices." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:417 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:406 msgid "Handling aspect ratios" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:419 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:408 msgid "" "Once scaling for different resolutions is accounted for, make sure that your " "*user interface* also scales for different aspect ratios. This can be done " @@ -57279,11 +59323,11 @@ msgid "" "`." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:425 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:414 msgid "Field of view scaling" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:427 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:416 msgid "" "The 3D Camera node's **Keep Aspect** property defaults to the **Keep " "Height** scaling mode (also called *Hor+*). This is usually the best value " @@ -57291,7 +59335,7 @@ msgid "" "will automatically use a wider field of view." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:432 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:421 msgid "" "However, if your 3D game is intended to be played in portrait mode, it may " "make more sense to use **Keep Width** instead (also called *Vert-*). This " @@ -57299,11 +59343,11 @@ msgid "" "a *taller* field of view, which is more logical here." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:438 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:427 msgid "Scaling 2D and 3D elements differently using Viewports" msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:440 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:429 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 " @@ -57312,7 +59356,7 @@ msgid "" "elements crisp." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:445 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:434 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 " @@ -57322,7 +59366,7 @@ msgid "" "scaled 3D viewports look better in many cases." msgstr "" -#: ../../docs/tutorials/rendering/multiple_resolutions.rst:452 +#: ../../docs/tutorials/rendering/multiple_resolutions.rst:441 msgid "" "See the `3D viewport scaling demo `__ for examples." @@ -57733,128 +59777,132 @@ msgid "Blend shapes" msgstr "" #: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:127 -msgid "Blend shapes are not supported in GLES2." +msgid "" +"In GLES2, blend shapes are implemented on the CPU instead of the GPU. " +"Accordingly, they may not perform as well as blend shapes in GLES3. To avoid " +"performance issues when using blend shapes in GLES2, try to minimize the " +"number of blend shapes that are updated each frame." msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:130 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:133 #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:4 msgid "Shading language" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:132 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:135 msgid "" "GLES3 provides many built-in functions that GLES2 does not. Below is a list " "of functions that are not available or are have limited support in GLES2." msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:135 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:138 msgid "" "For a complete list of built-in GLSL functions see the :ref:`Shading " "Language doc `." msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:138 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:643 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:141 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:644 msgid "Function" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:140 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:143 msgid "vec_type **modf** ( vec_type x, out vec_type i )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:142 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:145 msgid "vec_int_type **floatBitsToInt** ( vec_type x )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:144 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:147 msgid "vec_uint_type **floatBitsToUint** ( vec_type x )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:146 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:149 msgid "vec_type **intBitsToFloat** ( vec_int_type x )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:148 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:151 msgid "vec_type **uintBitsToFloat** ( vec_uint_type x )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:150 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:153 msgid "ivec2 **textureSize** ( sampler2D_type s, int lod )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:150 -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:152 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:153 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:155 msgid "See workaround below" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:152 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:155 msgid "ivec2 **textureSize** ( samplerCube s, int lod )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:154 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:157 msgid "vec4_type **texture** ( sampler_type s, vec_type uv [, float bias] )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:154 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:157 msgid "**bias** not available in vertex shader" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:156 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:159 msgid "" "vec4_type **textureProj** ( sampler_type s, vec_type uv [, float bias] )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:158 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:161 msgid "vec4_type **textureLod** ( sampler_type s, vec_type uv, float lod )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:158 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:161 msgid "Only available in vertex shader on some hardware" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:160 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:163 msgid "vec4_type **textureProjLod** ( sampler_type s, vec_type uv, float lod )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:162 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:165 msgid "" "vec4_type **textureGrad** ( sampler_type s, vec_type uv, vec_type dPdx, " "vec_type dPdy )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:164 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:167 msgid "vec_type **dFdx** ( vec_type p )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:166 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:169 msgid "vec_type **dFdy** ( vec_type p )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:168 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:171 msgid "vec_type **fwidth** ( vec_type p )" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:171 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:174 msgid "" "Functions not in GLES2's GLSL were added with Godots own shader standard " "library. These functions may perform worse in GLES2 compared to GLES3." msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:174 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:177 msgid "``textureSize()`` workaround" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:176 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:179 msgid "" "GLES2 does not support ``textureSize()``. You can get the size of a texture " "the old fashioned way by passing in a uniform with the texture size yourself." msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:192 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:195 msgid "Built in variables and render modes" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:194 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:197 msgid "" "Godot also provides many built-in variables and render modes. Some cannot be " "supported in GLES2. Below is a list of built-in variables and render modes " @@ -57862,31 +59910,31 @@ msgid "" "using the GLES2 backend." msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:199 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:202 msgid "Variable / Render Mode" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:201 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:204 msgid "``ensure_correct_normals``" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:203 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:206 msgid "``INSTANCE_ID``" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:205 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:208 msgid "``DEPTH``" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:207 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:210 msgid "``ANISOTROPY``" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:209 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:212 msgid "``ANISOTROPY_FLOW``" msgstr "" -#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:211 +#: ../../docs/tutorials/rendering/gles2_gles3_differences.rst:214 msgid "``SSS_STRENGTH``" msgstr "" @@ -58033,7 +60081,7 @@ msgid "else" msgstr "" #: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:149 -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:873 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:888 msgid "for" msgstr "" @@ -58042,7 +60090,7 @@ msgid "See for_." msgstr "" #: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:151 -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:862 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:877 msgid "while" msgstr "" @@ -58051,7 +60099,7 @@ msgid "See while_." msgstr "" #: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:153 -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:908 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:923 msgid "match" msgstr "" @@ -58413,7 +60461,7 @@ msgid "Addition / Concatenation of arrays" msgstr "" #: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:256 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:143 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:144 msgid "``-``" msgstr "" @@ -58466,156 +60514,160 @@ msgid "``in``" msgstr "" #: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:268 -msgid "Content test" +msgid "" +"When used with the ``if`` keyword it checks if a value is within a string, " +"list, range, dictionary, or node. When used with the ``for`` keyword it is " +"used to iterate though the contents of a string, list, range, dictionary or " +"node." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:270 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:275 msgid "``!`` ``not``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:270 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:275 msgid "Boolean NOT" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:272 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:277 msgid "``and`` ``&&``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:272 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:277 msgid "Boolean AND" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:274 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:279 msgid "``or`` ``||``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:274 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:279 msgid "Boolean OR" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:276 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:281 msgid "``if x else``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:276 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:281 msgid "Ternary if/else" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:278 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:283 msgid "``as``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:278 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:283 msgid "Type casting" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:280 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:285 msgid "``=`` ``+=`` ``-=`` ``*=`` ``/=`` ``%=`` ``&=`` ``|=`` ``<<=`` ``>>=``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:280 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:285 msgid "Assignment (lowest priority)" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:284 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:289 msgid "Literals" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:287 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:292 msgid "**Literal**" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:287 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:242 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:264 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:292 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:243 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:265 msgid "**Type**" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:289 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:294 msgid "``45``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:289 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:294 msgid "Base 10 integer" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:291 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:296 msgid "``0x8f51``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:291 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:296 msgid "Base 16 (hexadecimal) integer" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:293 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:298 msgid "``0b101010``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:293 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:298 msgid "Base 2 (binary) integer" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:295 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:300 msgid "``3.14``, ``58.1e-10``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:295 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:300 msgid "Floating-point number (real)" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:297 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:302 msgid "``\"Hello\"``, ``\"Hi\"``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:297 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:302 msgid "Strings" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:299 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:304 msgid "``\"\"\"Hello\"\"\"``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:299 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:304 msgid "Multiline string" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:301 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:306 msgid "``@\"Node/Label\"``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:301 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:306 msgid ":ref:`class_NodePath` or StringName" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:303 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:308 msgid "``$NodePath``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:303 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:308 msgid "Shorthand for ``get_node(\"NodePath\")``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:306 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:311 msgid "" "Integers and floats can have their numbers separated with ``_`` to make them " "more readable. The following ways to write numbers are all valid::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:315 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:320 msgid "Comments" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:317 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:322 msgid "" "Anything from a ``#`` to the end of the line is ignored and is considered a " "comment." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:327 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:332 msgid "Built-in types" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:329 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:334 msgid "" "Built-in types are stack-allocated. They are passed as values. This means a " "copy is created on each assignment or when passing them as arguments to " @@ -58624,43 +60676,43 @@ msgid "" "``PoolByteArray`` are still passed as values.)" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:336 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:341 msgid "Basic built-in types" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:338 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:343 msgid "A variable in GDScript can be assigned to several built-in types." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:343 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:348 msgid "" "``null`` is an empty data type that contains no information and can not be " "assigned any other value." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:347 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:352 msgid ":ref:`bool `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:349 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:354 msgid "Short for \"boolean\", it can only contain ``true`` or ``false``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:352 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:357 msgid ":ref:`int `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:354 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:359 msgid "" "Short for \"integer\", it stores whole numbers (positive and negative). It " "is stored as a 64-bit value, equivalent to \"int64_t\" in C++." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:358 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:363 msgid ":ref:`float `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:360 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:365 msgid "" "Stores real numbers, including decimals, using floating-point values. It is " "stored as a 64-bit value, equivalent to \"double\" in C++. Note: Currently, " @@ -58668,264 +60720,264 @@ msgid "" "single-precision \"float\" values." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:366 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:371 msgid ":ref:`String `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:368 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:373 msgid "" "A sequence of characters in `Unicode format `_. Strings can contain the following escape sequences:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:372 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:377 msgid "**Escape sequence**" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:372 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:377 msgid "**Expands to**" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:374 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:379 msgid "``\\n``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:374 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:379 msgid "Newline (line feed)" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:376 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:381 msgid "``\\t``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:376 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:381 msgid "Horizontal tab character" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:378 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:383 msgid "``\\r``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:378 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:383 msgid "Carriage return" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:380 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:385 msgid "``\\a``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:380 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:385 msgid "Alert (beep/bell)" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:382 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:387 msgid "``\\b``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:382 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:387 msgid "Backspace" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:384 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:389 msgid "``\\f``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:384 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:389 msgid "Formfeed page break" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:386 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:391 msgid "``\\v``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:386 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:391 msgid "Vertical tab character" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:388 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:393 msgid "``\\\"``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:388 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:393 msgid "Double quote" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:390 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:395 msgid "``\\'``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:390 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:395 msgid "Single quote" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:392 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:397 msgid "``\\\\``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:392 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:397 msgid "Backslash" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:394 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:399 msgid "``\\uXXXX``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:394 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:399 msgid "Unicode codepoint ``XXXX`` (hexadecimal, case-insensitive)" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:398 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:403 msgid "GDScript also supports :ref:`doc_gdscript_printf`." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:401 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:406 msgid "Vector built-in types" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:404 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:409 msgid ":ref:`Vector2 `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:406 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:411 msgid "" "2D vector type containing ``x`` and ``y`` fields. Can also be accessed as an " "array." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:410 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:415 msgid ":ref:`Rect2 `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:412 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:417 msgid "" "2D Rectangle type containing two vectors fields: ``position`` and ``size``. " "Also contains an ``end`` field which is ``position + size``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:416 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:421 msgid ":ref:`Vector3 `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:418 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:423 msgid "" "3D vector type containing ``x``, ``y`` and ``z`` fields. This can also be " "accessed as an array." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:422 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:427 msgid ":ref:`Transform2D `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:424 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:429 msgid "3×2 matrix used for 2D transforms." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:427 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:432 msgid ":ref:`Plane `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:429 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:434 msgid "" "3D Plane type in normalized form that contains a ``normal`` vector field and " "a ``d`` scalar distance." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:433 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:438 msgid ":ref:`Quat `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:435 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:440 msgid "" "Quaternion is a datatype used for representing a 3D rotation. It's useful " "for interpolating rotations." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:439 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:444 msgid ":ref:`AABB `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:441 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:446 msgid "" "Axis-aligned bounding box (or 3D box) contains 2 vectors fields: " "``position`` and ``size``. Also contains an ``end`` field which is " "``position + size``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:446 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:451 msgid ":ref:`Basis `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:448 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:453 msgid "" "3x3 matrix used for 3D rotation and scale. It contains 3 vector fields " "(``x``, ``y`` and ``z``) and can also be accessed as an array of 3D vectors." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:453 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:458 msgid ":ref:`Transform `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:455 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:460 msgid "" "3D Transform contains a Basis field ``basis`` and a Vector3 field ``origin``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:459 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:464 msgid "Engine built-in types" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:462 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:467 msgid ":ref:`Color `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:464 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:469 msgid "" "Color data type contains ``r``, ``g``, ``b``, and ``a`` fields. It can also " "be accessed as ``h``, ``s``, and ``v`` for hue/saturation/value." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:468 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:473 msgid ":ref:`NodePath `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:470 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:475 msgid "" "Compiled path to a node used mainly in the scene system. It can be easily " "assigned to, and from, a String." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:474 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:479 msgid ":ref:`RID `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:476 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:481 msgid "Resource ID (RID). Servers use generic RIDs to reference opaque data." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:479 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:484 msgid ":ref:`Object `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:481 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:486 msgid "Base class for anything that is not a built-in type." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:484 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:489 msgid "Container built-in types" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:487 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:492 msgid ":ref:`Array `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:489 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:494 msgid "" "Generic sequence of arbitrary object types, including other arrays or " "dictionaries (see below). The array can resize dynamically. Arrays are " "indexed starting from index ``0``. Negative indices count from the end." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:503 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:508 msgid "" "GDScript arrays are allocated linearly in memory for speed. Large arrays " "(more than tens of thousands of elements) may however cause memory " @@ -58935,51 +60987,51 @@ msgid "" "They are therefore only recommended to use for large data sets:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:510 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:515 msgid "" ":ref:`PoolByteArray `: An array of bytes (integers from " "0 to 255)." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:511 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:516 msgid ":ref:`PoolIntArray `: An array of integers." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:512 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:517 msgid ":ref:`PoolRealArray `: An array of floats." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:513 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:518 msgid ":ref:`PoolStringArray `: An array of strings." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:514 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:519 msgid "" ":ref:`PoolVector2Array `: An array of :ref:`Vector2 " "` objects." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:515 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:520 msgid "" ":ref:`PoolVector3Array `: An array of :ref:`Vector3 " "` objects." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:516 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:521 msgid "" ":ref:`PoolColorArray `: An array of :ref:`Color " "` objects." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:519 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:524 msgid ":ref:`Dictionary `" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:521 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:526 msgid "Associative container which contains values referenced by unique keys." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:534 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:539 msgid "" "Lua-style table syntax is also supported. Lua-style uses ``=`` instead of ``:" "`` and doesn't use quotes to mark string keys (making for slightly less to " @@ -58987,13 +61039,13 @@ msgid "" "any GDScript identifier)." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:548 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:553 msgid "" "To add a key to an existing dictionary, access it like an existing key and " "assign to it::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:564 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:569 msgid "" "The bracket syntax can be used to access properties of any :ref:" "`class_Object`, not just Dictionaries. Keep in mind it will cause a script " @@ -59002,7 +61054,7 @@ msgid "" "` methods instead." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:574 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:579 #: ../../docs/tutorials/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shaders/converting_glsl_to_godot_shaders.rst:92 #: ../../docs/tutorials/shaders/converting_glsl_to_godot_shaders.rst:159 @@ -59010,104 +61062,104 @@ msgstr "" msgid "Variables" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:576 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:581 msgid "" "Variables can exist as class members or local to functions. They are created " "with the ``var`` keyword and may, optionally, be assigned a value upon " "initialization." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:587 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:592 msgid "" "Variables can optionally have a type specification. When a type is " "specified, the variable will be forced to have always that same type, and " "trying to assign an incompatible value will raise an error." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:591 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:596 msgid "" "Types are specified in the variable declaration using a ``:`` (colon) symbol " "after the variable name, followed by the type." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:599 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:604 msgid "" "If the variable is initialized within the declaration, the type can be " "inferred, so it's possible to omit the type name::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:605 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:610 msgid "" "Type inference is only possible if the assigned value has a defined type, " "otherwise it will raise an error." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:608 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:613 msgid "Valid types are:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:610 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:615 msgid "Built-in types (Array, Vector2, int, String, etc.)." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:611 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:616 msgid "Engine classes (Node, Resource, Reference, etc.)." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:612 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:617 msgid "" "Constant names if they contain a script resource (``MyScript`` if you " "declared ``const MyScript = preload(\"res://my_script.gd\")``)." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:613 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:618 msgid "" "Other classes in the same script, respecting scope (``InnerClass." "NestedClass`` if you declared ``class NestedClass`` inside the ``class " "InnerClass`` in the same scope)." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:614 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:619 msgid "Script classes declared with the ``class_name`` keyword." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:617 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:622 #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:85 msgid "Casting" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:619 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:624 msgid "" "Values assigned to typed variables must have a compatible type. If it's " "needed to coerce a value to be of a certain type, in particular for object " "types, you can use the casting operator ``as``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:623 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:628 msgid "" "Casting between object types results in the same object if the value is of " "the same type or a subtype of the cast type." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:631 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:636 msgid "" "If the value is not a subtype, the casting operation will result in a " "``null`` value." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:638 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:643 msgid "" "For built-in types, they will be forcibly converted if possible, otherwise " "the engine will raise an error." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:647 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:652 msgid "" "Casting is also useful to have better type-safe variables when interacting " "with the scene tree::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:657 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:662 #: ../../docs/tutorials/scripting/visual_script/nodes_purposes.rst:211 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:22 #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:259 @@ -59117,7 +61169,7 @@ msgstr "" msgid "Constants" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:659 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:664 msgid "" "Constants are values you cannot change when the game is running. Their value " "must be known at compile-time. Using the ``const`` keyword allows you to " @@ -59125,21 +61177,21 @@ msgid "" "it's declared will give you an error." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:664 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:669 msgid "We recommend using constants whenever a value is not meant to change." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:677 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:682 msgid "" "Although the type of constants is inferred from the assigned value, it's " "also possible to add explicit type specification::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:683 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:688 msgid "Assigning a value of an incompatible type will raise an error." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:687 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:692 msgid "" "Since arrays and dictionaries are passed by reference, constants are " "\"flat\". This means that if you declare a constant array or dictionary, it " @@ -59147,36 +61199,36 @@ msgid "" "value though." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:692 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:697 msgid "Enums" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:694 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:699 msgid "" "Enums are basically a shorthand for constants, and are pretty useful if you " "want to assign consecutive integers to some constant." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:697 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:702 msgid "" "If you pass a name to the enum, it will put all the keys inside a constant " "dictionary of that name." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:700 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:705 msgid "" "In Godot 3.1 and later, keys in a named enum are not registered as global " "constants. They should be accessed prefixed by the enum's name (``Name." "KEY``); see an example below." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:720 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:725 #: ../../docs/tutorials/scripting/visual_script/nodes_purposes.rst:391 #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:386 msgid "Functions" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:722 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:727 msgid "" "Functions always belong to a `class `_. The scope priority for " "variable look-up is: local → class member → global. The ``self`` variable is " @@ -59185,30 +61237,30 @@ msgid "" "argument, unlike Python)." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:735 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:740 msgid "" "A function can ``return`` at any point. The default return value is ``null``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:737 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:742 msgid "" "Functions can also have type specification for the arguments and for the " "return value. Types for arguments can be added in a similar way to " "variables::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:743 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:748 msgid "" "If a function argument has a default value, it's possible to infer the type::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:748 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:753 msgid "" "The return type of the function can be specified after the arguments list " "using the arrow token (``->``)::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:754 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:759 msgid "" "Functions that have a return type **must** return a proper value. Setting " "the type as ``void`` means the function doesn't return anything. Void " @@ -59216,7 +61268,7 @@ msgid "" "return any value." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:763 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:768 msgid "" "Non-void functions must **always** return a value, so if your code has " "branching statements (such as an ``if``/``else`` construct), all the " @@ -59225,11 +61277,11 @@ msgid "" "block is not executed, the function won't have a valid value to return." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:771 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:776 msgid "Referencing functions" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:773 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:778 msgid "" "Contrary to Python, functions are *not* first-class objects in GDScript. " "This means they cannot be stored in variables, passed as an argument to " @@ -59237,40 +61289,40 @@ msgid "" "performance reasons." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:777 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:782 msgid "" "To reference a function by name at run-time, (e.g. to store it in a " "variable, or pass it to another function as an argument) one must use the " "``call`` or ``funcref`` helpers::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:791 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:796 msgid "Static functions" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:793 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:798 msgid "" "A function can be declared static. When a function is static, it has no " "access to the instance member variables or ``self``. This is mainly useful " "to make libraries of helper functions::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:802 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:807 msgid "Statements and control flow" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:804 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:809 msgid "" "Statements are standard and can be assignments, function calls, control flow " "structures, etc (see below). ``;`` as a statement separator is entirely " "optional." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:809 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:814 msgid "if/else/elif" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:811 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:816 msgid "" "Simple conditions are created by using the ``if``/``else``/``elif`` syntax. " "Parenthesis around conditions are allowed, but not required. Given the " @@ -59278,30 +61330,37 @@ msgid "" "``else``/``if`` to maintain a level of indentation." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:825 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:830 msgid "Short statements can be written on the same line as the condition::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:832 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:837 msgid "" "Sometimes, you might want to assign a different initial value based on a " "boolean expression. In this case, ternary-if expressions come in handy::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:838 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:843 msgid "" "Ternary-if expressions can be nested to handle more than 2 cases. When " "nesting ternary-if expressions, it is recommended to wrap the complete " "expression over multiple lines to preserve readability::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:864 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:866 +msgid "" +"You may also wish to check if a value is contained within something. You can " +"use an ``if`` statement combined with the ``in`` operator to accomplish " +"this::" +msgstr "" + +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:879 msgid "" "Simple loops are created by using ``while`` syntax. Loops can be broken " "using ``break`` or continued using ``continue``:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:875 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:890 msgid "" "To iterate through a range, such as an array or table, a *for* loop is used. " "When iterating over an array, the current array element is stored in the " @@ -59309,44 +61368,44 @@ msgid "" "loop variable." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:910 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:925 msgid "" "A ``match`` statement is used to branch execution of a program. It's the " "equivalent of the ``switch`` statement found in many other languages, but " "offers some additional features." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:913 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:928 msgid "Basic syntax::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:924 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:939 msgid "**Crash-course for people who are familiar with switch statements**:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:926 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:941 msgid "Replace ``switch`` with ``match``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:927 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:942 msgid "Remove ``case``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:928 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:943 msgid "" "Remove any ``break``\\ s. If you don't want to ``break`` by default, you can " "use ``continue`` for a fallthrough." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:929 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:944 msgid "Change ``default`` to a single underscore." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:932 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:947 msgid "**Control flow**:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:934 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:949 msgid "" "The patterns are matched from top to bottom. If a pattern matches, the first " "corresponding block will be executed. After that, the execution continues " @@ -59354,138 +61413,138 @@ msgid "" "the current block and check for an additional match in the patterns below it." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:938 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:953 msgid "There are 6 pattern types:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:950 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:965 msgid "Constant pattern" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:941 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:956 msgid "Constant primitives, like numbers and strings::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:962 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:977 msgid "Variable pattern" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:953 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:968 msgid "Matches the contents of a variable/enum::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:976 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:991 msgid "Wildcard pattern" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:965 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:980 msgid "This pattern matches everything. It's written as a single underscore." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:967 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:982 msgid "" "It can be used as the equivalent of the ``default`` in a ``switch`` " "statement in other languages::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:989 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1004 msgid "Binding pattern" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:979 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:994 msgid "" "A binding pattern introduces a new variable. Like the wildcard pattern, it " "matches everything - and also gives that value a name. It's especially " "useful in array and dictionary patterns::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1010 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1025 msgid "Array pattern" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:992 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1007 msgid "" "Matches an array. Every single element of the array pattern is a pattern " "itself, so you can nest them." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:994 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1009 msgid "" "The length of the array is tested first, it has to be the same size as the " "pattern, otherwise the pattern doesn't match." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:996 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1011 msgid "" "**Open-ended array**: An array can be bigger than the pattern by making the " "last subpattern ``..``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:998 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1013 msgid "Every subpattern has to be comma-separated." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1037 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1052 msgid "Dictionary pattern" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1013 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1028 msgid "" "Works in the same way as the array pattern. Every key has to be a constant " "pattern." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1015 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1030 msgid "" "The size of the dictionary is tested first, it has to be the same size as " "the pattern, otherwise the pattern doesn't match." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1017 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1032 msgid "" "**Open-ended dictionary**: A dictionary can be bigger than the pattern by " "making the last subpattern ``..``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1019 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1034 msgid "Every subpattern has to be comma separated." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1021 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1036 msgid "" "If you don't specify a value, then only the existence of the key is checked." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1023 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1038 msgid "A value pattern is separated from the key pattern with a ``:``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1048 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1063 msgid "Multiple patterns" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1040 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1055 msgid "" "You can also specify multiple patterns separated by a comma. These patterns " "aren't allowed to have any bindings in them." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1051 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1066 msgid "Classes" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1053 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1068 msgid "" "By default, all script files are unnamed classes. In this case, you can only " "reference them using the file's path, using either a relative or an absolute " "path. For example, if you name a script file ``character.gd``::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1069 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1084 msgid "Registering named classes" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1071 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1086 msgid "" "You can give your class a name to register it as a new type in Godot's " "editor. For that, you use the ``class_name`` keyword. You can optionally add " @@ -59493,7 +61552,7 @@ msgid "" "will then appear with its new icon in the editor::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1085 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1100 msgid "" "If the script is located in the ``res://addons/`` directory, ``class_name`` " "will only cause the node to show up in the **Create New Node** dialog if the " @@ -59501,11 +61560,11 @@ msgid "" "for more information." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1090 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1105 msgid "Here's a class file example:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1112 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1127 msgid "" "Godot's class syntax is compact: it can only contain member variables or " "functions. You can use static functions, but not static member variables. In " @@ -59515,48 +61574,48 @@ msgid "" "without the user knowing." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1120 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1135 #: ../../docs/tutorials/scripting/cross_language_scripting.rst:204 msgid "Inheritance" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1122 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1137 msgid "A class (stored as a file) can inherit from:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1124 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1139 msgid "A global class." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1125 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1140 msgid "Another class file." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1126 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1141 msgid "An inner class inside another class file." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1128 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1143 msgid "Multiple inheritance is not allowed." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1130 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1145 msgid "Inheritance uses the ``extends`` keyword::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1142 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1157 msgid "" "To check if a given instance inherits from a given class, the ``is`` keyword " "can be used::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1154 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1169 msgid "" "To call a function in a *parent class* (i.e. one ``extend``-ed in your " "current class), prepend ``.`` to the function name::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1159 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1174 msgid "" "This is especially useful because functions in extending classes replace " "functions with the same name in their parent classes. If you still want to " @@ -59564,7 +61623,7 @@ msgid "" "other languages)::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1167 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1182 msgid "" "Default functions like ``_init``, and most notifications such as " "``_enter_tree``, ``_exit_tree``, ``_process``, ``_physics_process``, etc. " @@ -59572,11 +61631,11 @@ msgid "" "them explicitly when overloading them." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1174 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1189 msgid "Class constructor" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1176 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1191 msgid "" "The class constructor, called on class instantiation, is named ``_init``. As " "mentioned earlier, the constructors of parent classes are called " @@ -59584,22 +61643,22 @@ msgid "" "``._init()`` explicitly." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1181 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1196 msgid "" "Unlike the call of a regular function, like in the above example with ``." "some_func``, if the constructor from the inherited class takes arguments, " "they are passed like this::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1188 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1203 msgid "This is better explained through examples. Consider this scenario::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1211 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1226 msgid "There are a few things to keep in mind here:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1213 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1228 msgid "" "If the inherited class (``State.gd``) defines a ``_init`` constructor that " "takes arguments (``e`` in this case), then the inheriting class (``Idle." @@ -59607,19 +61666,19 @@ msgid "" "``_init`` from ``State.gd``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1216 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1231 msgid "" "``Idle.gd`` can have a different number of arguments than the parent class " "``State.gd``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1217 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1232 msgid "" "In the example above, ``e`` passed to the ``State.gd`` constructor is the " "same ``e`` passed in to ``Idle.gd``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1219 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1234 msgid "" "If ``Idle.gd``'s ``_init`` constructor takes 0 arguments, it still needs to " "pass some value to the ``State.gd`` parent class, even if it does nothing. " @@ -59627,21 +61686,21 @@ msgid "" "constructor as well, not just variables, e.g.::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1229 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1244 msgid "Inner classes" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1231 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1246 msgid "" "A class file can contain inner classes. Inner classes are defined using the " "``class`` keyword. They are instanced using the ``ClassName.new()`` function." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1256 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1271 msgid "Classes as resources" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1258 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1273 msgid "" "Classes stored as files are treated as :ref:`resources `. " "They must be loaded from disk to access them in other classes. This is done " @@ -59650,33 +61709,33 @@ msgid "" "class object::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1275 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1290 msgid "Exports" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1279 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1294 msgid "" "Documentation about exports has been moved to :ref:`doc_gdscript_exports`." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1282 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1297 msgid "Setters/getters" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1284 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1299 msgid "" "It is often useful to know when a class' member variable changes for " "whatever reason. It may also be desired to encapsulate its access in some " "way." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1287 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1302 msgid "" "For this, GDScript provides a *setter/getter* syntax using the ``setget`` " "keyword. It is used directly after a variable definition:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1294 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1309 msgid "" "Whenever the value of ``variable`` is modified by an *external* source (i.e. " "not from local usage in the class), the *setter* function (``setterfunc`` " @@ -59686,28 +61745,28 @@ msgid "" "``return`` the desired value. Below is an example::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1310 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1325 msgid "Either of the *setter* or *getter* functions can be omitted::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1317 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1332 msgid "" "Setters and getters are useful when :ref:`exporting variables " "` to the editor in tool scripts or plugins, for " "validating input." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1320 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1335 msgid "" "As said, *local* access will *not* trigger the setter and getter. Here is an " "illustration of this:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1337 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1352 msgid "Tool mode" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1339 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1354 msgid "" "By default, scripts don't run inside the editor and only the exported " "properties can be changed. In some cases, it is desired that they do run " @@ -59716,22 +61775,22 @@ msgid "" "top of the file::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1353 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1368 msgid "See :ref:`doc_running_code_in_the_editor` for more information." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1355 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1370 msgid "" "Be cautious when freeing nodes with ``queue_free()`` or ``free()`` in a tool " "script (especially the script's owner itself). As tool scripts run their " "code in the editor, misusing them may lead to crashing the editor." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1363 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1378 msgid "Memory management" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1365 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1380 msgid "" "If a class inherits from :ref:`class_Reference`, then instances will be " "freed when no longer in use. No garbage collector exists, just reference " @@ -59742,20 +61801,20 @@ msgid "" "provided for creating weak references. Here is an example:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1387 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1402 msgid "" "Alternatively, when not using references, the " "``is_instance_valid(instance)`` can be used to check if an object has been " "freed." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1396 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1411 msgid "" "Signals are a tool to emit messages from an object that other objects can " "react to. To create custom signals for a class, use the ``signal`` keyword." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1409 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1424 msgid "" "Signals are a `Callback `_ mechanism. They also fill the role of " @@ -59764,31 +61823,31 @@ msgid "" "the Game Programming Patterns ebook." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1416 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1431 msgid "" "You can connect these signals to methods the same way you connect built-in " "signals of nodes like :ref:`class_Button` or :ref:`class_RigidBody`." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1419 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1434 msgid "" "In the example below, we connect the ``health_depleted`` signal from a " "``Character`` node to a ``Game`` node. When the ``Character`` node emits the " "signal, the game node's ``_on_Character_health_depleted`` is called::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1433 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1448 msgid "You can emit as many arguments as you want along with a signal." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1435 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1450 msgid "" "Here is an example where this is useful. Let's say we want a life bar on " "screen to react to health changes with an animation, but we want to keep the " "user interface separate from the player in our scene tree." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1439 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1454 msgid "" "In our ``Character.gd`` script, we define a ``health_changed`` signal and " "emit it with :ref:`Object.emit_signal() `, " @@ -59797,32 +61856,32 @@ msgid "" "method::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1480 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1495 msgid "" "To use signals, your class has to extend the ``Object`` class or any type " "extending it like ``Node``, ``KinematicBody``, ``Control``..." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1483 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1498 msgid "" "In the ``Game`` node, we get both the ``Character`` and ``Lifebar`` nodes, " "then connect the character, that emits the signal, to the receiver, the " "``Lifebar`` node in this case." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1497 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1512 msgid "" "This allows the ``Lifebar`` to react to health changes without coupling it " "to the ``Character`` node." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1500 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1515 msgid "" "You can write optional argument names in parentheses after the signal's " "definition::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1506 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1521 msgid "" "These 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 " @@ -59830,7 +61889,7 @@ msgid "" "values." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1512 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1527 msgid "" "GDScript can bind an array of values to connections between a signal and a " "method. When the signal is emitted, the callback method receives the bound " @@ -59838,14 +61897,14 @@ msgid "" "will stay the same." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1517 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1532 msgid "" "You can use this array of values to add extra constant information to the " "connection if the emitted signal itself doesn't give you access to all the " "data that you need." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1521 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1536 msgid "" "Building on the example above, let's say we want to display a log of the " "damage taken by each character on the screen, like ``Player1 took 22 damage." @@ -59854,17 +61913,17 @@ msgid "" "can add the character's name in the binds array argument::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1535 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1550 msgid "" "Our ``BattleLog`` node receives each element in the binds array as an extra " "argument::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1548 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1563 msgid "Coroutines with yield" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1550 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1565 msgid "" "GDScript offers support for `coroutines `_ via the :ref:`yield` built-in " @@ -59875,62 +61934,62 @@ msgid "" "becomes invalid. Here is an example::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1571 -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1592 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1586 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1607 msgid "Will print::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1577 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1592 msgid "" "It is also possible to pass values between ``yield()`` and ``resume()``, for " "example::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1613 msgid "" "Remember to save the new function state, when using multiple ``yield``\\s::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1613 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines & signals" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1615 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "The real strength of using ``yield`` is when combined with signals. " "``yield`` can accept two arguments, an object and a signal. When the signal " "is received, execution will recommence. Here are some examples::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1628 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1643 msgid "" "Coroutines themselves use the ``completed`` signal when they transition into " "an invalid state, for example::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1640 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1655 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1642 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1657 msgid "You can also get the signal's argument once it's emitted by an object:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1649 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1664 msgid "" "If there is more than one argument, ``yield`` returns an array containing " "the arguments::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1667 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1682 msgid "" "If you're unsure whether a function may yield or not, or whether it may " "yield multiple times, you can yield to the ``completed`` signal " "conditionally:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1689 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1704 msgid "" "This ensures that the function returns whatever it was supposed to return " "regardless of whether coroutines were used internally. Note that using " @@ -59938,12 +61997,12 @@ msgid "" "emitted when the function didn't yield anymore." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1697 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1712 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:127 msgid "`onready` keyword" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1699 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1714 msgid "" "When using nodes, it's common to desire to keep references to parts of the " "scene in a variable. As scenes are only warranted to be configured when " @@ -59951,7 +62010,7 @@ msgid "" "call to ``Node._ready()`` is made." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1712 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1727 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -59959,11 +62018,11 @@ msgid "" "can replace the above code with a single line::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1720 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1735 msgid "Assert keyword" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1722 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1737 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds. This means that the " @@ -59973,7 +62032,7 @@ msgid "" "depending on whether the project is run in a debug build." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1734 +#: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:1749 msgid "" "When running a project from the editor, the project will be paused if an " "assertion error occurs." @@ -60579,27 +62638,50 @@ msgid "" msgstr "" #: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:292 -msgid "Adding script categories" +msgid "Adding default values for properties" msgstr "" #: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:294 msgid "" +"To define default values for advanced exports, you need to override the " +"``property_can_revert()`` and ``property_get_revert()`` methods." +msgstr "" + +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:296 +msgid "" +"The ``property_can_revert()`` method takes the name of a property and must " +"return ``true`` if the property can be reverted. This will enable the Revert " +"button next to the property in the inspector." +msgstr "" + +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:298 +msgid "" +"The ``property_get_revert()`` method takes the name of a property and must " +"return the default value for that property." +msgstr "" + +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:320 +msgid "Adding script categories" +msgstr "" + +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:322 +msgid "" "For better visual distinguishing of properties, a special script category " "can be embedded into the inspector to act as a separator. ``Script " "Variables`` is one example of a built-in category. ::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:314 +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:342 msgid "``name`` is the name of a category to be added to the inspector;" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:316 +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:344 msgid "" "Every following property added after the category definition will be a part " "of the category." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:319 +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:347 msgid "" "``PROPERTY_USAGE_CATEGORY`` indicates that the property should be treated as " "a script category specifically, so the type ``TYPE_NIL`` can be ignored as " @@ -60607,21 +62689,21 @@ msgid "" "anyway." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:324 +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:352 msgid "Grouping properties" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:326 +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:354 msgid "A list of properties with similar names can be grouped. ::" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:352 +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:380 msgid "" "``name`` is the name of a group which is going to be displayed as " "collapsible list of properties;" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:355 +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:383 msgid "" "Every following property added after the group property with the prefix " "(which determined by ``hint_string``) will be shortened. For instance, " @@ -60630,7 +62712,7 @@ msgid "" "shortened." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:361 +#: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:389 msgid "" "``PROPERTY_USAGE_GROUP`` indicates that the property should be treated as a " "script group specifically, so the type ``TYPE_NIL`` can be ignored as it " @@ -61926,55 +64008,56 @@ msgstr "" #: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:136 msgid "" "Set **padding**. Padded with spaces or with zeroes if integer starts with " -"``0`` in an integer placeholder. When used after ``.``, see ``.``." +"``0`` in an integer or real number placeholder. The leading ``0`` is ignored " +"if ``-`` is present. When used after ``.``, see ``.``." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:140 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:141 msgid "``.``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:140 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:141 msgid "" "Before ``f``, set **precision** to 0 decimal places. Can be followed up with " "numbers to change. Padded with zeroes." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:143 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:144 msgid "**Pad to the right** rather than the left." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:145 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:146 msgid "``*``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:145 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:146 msgid "" "**Dynamic padding**, expect additional integral parameter to set padding or " "precision after ``.``, see `dynamic padding`_." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:151 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:152 msgid "Padding" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:153 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:154 msgid "" "The ``.`` (*dot*), ``*`` (*asterisk*), ``-`` (*minus sign*) and digit (``0``-" "``9``) characters are used for padding. This allows printing several values " "aligned vertically as if in a column, provided a fixed-width font is used." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:158 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:159 msgid "To pad a string to a minimum length, add an integer to the specifier:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:166 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:167 msgid "" "If the integer starts with ``0``, integral values are padded with zeroes " "instead of white space:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:174 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:175 msgid "" "Precision can be specified for real numbers by adding a ``.`` (*dot*) with " "an integer following it. With no integer after ``.``, a precision of 0 is " @@ -61982,17 +64065,17 @@ msgid "" "before the dot." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:186 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:187 msgid "" "The ``-`` character will cause padding to the right rather than the left, " "useful for right text alignment:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:197 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:198 msgid "Dynamic padding" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:199 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:200 msgid "" "By using the ``*`` (*asterisk*) character, the padding or precision can be " "set without modifying the format string. It is used in place of an integer " @@ -62000,175 +64083,175 @@ msgid "" "passed when formatting:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:212 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:213 msgid "" "It is still possible to pad with zeroes in integer placeholders by adding " "``0`` before ``*``:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:222 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:223 msgid "Escape sequence" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:224 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:225 msgid "" "To insert a literal ``%`` character into a format string, it must be escaped " "to avoid reading it as a placeholder. This is done by doubling the character:" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:235 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:236 msgid "Format method examples" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:237 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:238 msgid "" "The following are some examples of how to use the various invocations of the " "``String.format`` method." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:242 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:243 msgid "**Style**" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:242 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:264 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:277 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:243 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:265 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:278 msgid "**Example**" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:242 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:264 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:277 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:243 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:265 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:278 msgid "**Result**" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:244 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:246 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:248 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:245 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:247 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:249 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:310 msgid "Dictionary" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:244 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:250 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:245 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:251 msgid "key" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:244 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:245 msgid "" "``\"Hi, {name} v{version}!\".format({\"name\":\"Godette\", \"version\":" "\"3.0\"})``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:244 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:246 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:248 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:250 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:252 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:254 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:256 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:245 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:247 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:249 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:251 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:253 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:255 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:257 msgid "Hi, Godette v3.0!" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:246 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:252 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:247 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:253 msgid "index" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:246 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:247 msgid "``\"Hi, {0} v{1}!\".format({\"0\":\"Godette\", \"1\":\"3.0\"})``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:248 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:254 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:249 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:255 msgid "mix" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:248 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:249 msgid "" "``\"Hi, {0} v{version}!\".format({\"0\":\"Godette\", \"version\":\"3.0\"})``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:250 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:252 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:254 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:256 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:251 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:253 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:255 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:257 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:289 msgid "Array" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:250 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:251 msgid "" "``\"Hi, {name} v{version}!\".format([[\"version\",\"3.0\"], [\"name\"," "\"Godette\"]])``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:252 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:253 msgid "``\"Hi, {0} v{1}!\".format([\"Godette\",\"3.0\"])``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:254 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:255 msgid "``\"Hi, {name} v{0}!\".format([3.0, [\"name\",\"Godette\"]])``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:256 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:257 msgid "no index" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:256 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:257 msgid "``\"Hi, {} v{}!\".format([\"Godette\", 3.0], \"{}\")``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:259 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:260 msgid "" "Placeholders can also be customized when using ``String.format``, here's " "some examples of that functionality." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:266 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:267 msgid "Infix (default)" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:266 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:267 msgid "``\"Hi, {0} v{1}\".format([\"Godette\", \"3.0\"], \"{_}\")``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:266 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:268 -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:270 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:267 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:269 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:271 msgid "Hi, Godette v3.0" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:268 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:269 msgid "Postfix" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:268 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:269 msgid "``\"Hi, 0% v1%\".format([\"Godette\", \"3.0\"], \"_%\")``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:270 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:271 msgid "Prefix" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:270 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:271 msgid "``\"Hi, %0 v%1\".format([\"Godette\", \"3.0\"], \"%_\")``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:273 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:274 msgid "" "Combining both the ``String.format`` method and the ``%`` operator could be " "useful, as ``String.format`` does not have a way to manipulate the " "representation of numbers." msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:279 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:280 msgid "" "``\"Hi, {0} v{version}\".format({0:\"Godette\", \"version\":\"%0.2f\" % " "3.114})``" msgstr "" -#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:279 +#: ../../docs/tutorials/scripting/gdscript/gdscript_format_string.rst:280 msgid "Hi, Godette v3.11" msgstr "" @@ -63045,10 +65128,6 @@ msgstr "" msgid "Same as Yield, but will wait until a given signal is emitted." msgstr "" -#: ../../docs/tutorials/scripting/visual_script/nodes_purposes.rst:464 -msgid "Index" -msgstr "" - #: ../../docs/tutorials/scripting/visual_script/nodes_purposes.rst:466 msgid "" "Generic indexing operator, not often used but it's good that it exists just " @@ -63110,24 +65189,24 @@ msgstr "" msgid "Custom VisualScript nodes" msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:6 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:16 msgid "" "Custom nodes are written in GDScript and can then be used in VisualScript. " "This is useful for offloading complex code to GDScript and reusing it." msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:10 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:20 msgid "Creating a custom node" msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:12 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:22 msgid "" "Create a new script that extends :ref:`class_VisualScriptCustomNode` and put " "a ``tool`` keyword at the top. This is needed for the script to run in the " "editor." msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:14 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:24 msgid "" "There are some functions that can be implemented to set parameters of the " "custom node. Only add functions that are needed, a " @@ -63135,35 +65214,35 @@ msgid "" "``false`` for example." msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:17 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:27 msgid "" "The most important part of a custom node is the ``_step`` function. The " "logic of the node is defined there." msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:19 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:29 msgid "The ``inputs`` parameter holds the value of the input ports." msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:21 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:31 msgid "" "The ``outputs`` parameter is an array where the indices represent the output " "port ids. It can be modified to set the values of the output ports." msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:23 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:33 msgid "" "``start_mode`` can be checked to see if it is the first time ``_step`` is " "called." msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:25 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:35 msgid "" "``working_mem`` is persistent each ``_step`` call. It can be used to store " "information." msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:27 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:37 msgid "" "If you want to throw an error, for example if the input types are incorrect, " "you can return the error message as a string. When everything goes right, " @@ -63171,11 +65250,11 @@ msgid "" "custom node doesn't have any, just return 0." msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:94 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:104 msgid "Using a custom node" msgstr "" -#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:96 +#: ../../docs/tutorials/scripting/visual_script/custom_visualscript_nodes.rst:106 msgid "" "To use the script, add a ``CustomNode``, select it and drag your custom node " "script into the ``script`` property shown in the inspector." @@ -63229,8 +65308,8 @@ msgstr "" #: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:46 msgid "" -"Install the latest stable version of `.NET Core SDK `__ (3.1 as of writing)." +"Install the latest stable version of the `.NET SDK `__, previously known as the .NET Core SDK." msgstr "" #: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:50 @@ -63241,31 +65320,29 @@ msgstr "" #: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:53 msgid "" -"Godot bundles the parts of Mono needed to run already compiled games, " -"however Godot does not include the tools required to build and compile " -"games, such as MSBuild. These tools need to be installed separately. The " -"required tools are included in the .NET Core SDK. MSBuild is also included " -"in the Mono SDK, but it can't build C# projects with the new ``csproj`` " -"format, therefore .NET Core SDK is required for Godot 3.2.3+." +"Godot bundles the parts of Mono needed to run already compiled games. " +"However, Godot does not bundle the tools required to build and compile " +"games, such as MSBuild and the C# compiler. These are included in the .NET " +"SDK, which needs to be installed separately." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:60 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:58 msgid "" -"In summary, you must have installed .NET Core SDK **and** the Mono-enabled " +"In summary, you must have installed the .NET SDK **and** the Mono-enabled " "version of Godot." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:64 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:62 msgid "Additional notes" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:66 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:64 msgid "" "Be sure to install the 64-bit version of the SDK(s) if you are using the 64-" "bit version of Godot." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:69 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:67 msgid "" "If you are building Godot from source, install the latest stable version of " "`Mono `__, and make sure to " @@ -63273,11 +65350,11 @@ msgid "" "ref:`doc_compiling_with_mono` page." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:75 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:73 msgid "Configuring an external editor" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:77 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:75 msgid "" "C# support in Godot's built-in script editor is minimal. Consider using an " "external IDE or editor, such as `Visual Studio Code `__." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:100 -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:116 -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:151 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:98 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:114 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:150 msgid "In Godot's **Editor → Editor Settings** menu:" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:102 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:100 msgid "" "Set **Mono** -> **Editor** -> **External Editor** to **JetBrains Rider**." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:103 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:101 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:117 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:153 msgid "Set **Mono** -> **Builds** -> **Build Tool** to **dotnet CLI**." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:105 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:103 msgid "In Rider:" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:107 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:105 msgid "Set **MSBuild version** to **.NET Core**." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:108 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:106 msgid "Install the **Godot support** plugin." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:113 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:111 msgid "" "After reading the \"Prerequisites\" section, you can download and install " "`Visual Studio Code `__ (aka VS " "Code)." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:118 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:116 msgid "" "Set **Mono** -> **Editor** -> **External Editor** to **Visual Studio Code**." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:120 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:119 msgid "In Visual Studio Code:" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:122 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:121 msgid "" "Install the `C# `__ extension." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:123 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:122 msgid "" "Install the `Mono Debug `__ extension." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:124 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:123 msgid "" "Install the `C# Tools for Godot `__ extension." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:126 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:125 msgid "" "If you are using Linux you need to install the `Mono SDK `__ for the C# tools plugin to " "work." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:130 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:129 msgid "" "To configure a project for debugging open the Godot project folder in VS " "Code. Go to the Run tab and click on **Add Configuration...**. Select **C# " @@ -63388,11 +65467,11 @@ msgid "" "when you start the debugger in VS Code, your Godot project will run." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:138 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:137 msgid "Visual Studio (Windows only)" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:140 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:139 msgid "" "Download and install the latest version of `Visual Studio `__. Visual Studio will include the " @@ -63400,42 +65479,65 @@ msgid "" "to manually install the things listed in the \"Prerequisites\" section." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:146 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:145 msgid "While installing Visual Studio, select these workloads:" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:148 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:147 msgid "Mobile development with .NET" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:149 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:148 msgid ".NET Core cross-platform development" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:153 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:152 msgid "Set **Mono** -> **Editor** -> **External Editor** to **Visual Studio**." msgstr "" #: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:155 msgid "" -"Next, you need to download the Godot Visual Studio extension from github " -"`here `__. Double click on the downloaded file and follow the " -"installation process." +"Next, you can download the Godot Visual Studio extension from github `here " +"`__. " +"Double click on the downloaded file and follow the installation process." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:161 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:159 +msgid "" +"The option to debug your game in Visual Studio may not appear after " +"installing the extension. To enable debugging, there is a `workaround for " +"Visual Studio 2019 `__. There is `a separate issue about this " +"problem in Visual Studio 2022 `__." +msgstr "" + +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:165 +msgid "" +"If you see an error like \"Unable to find package Godot.NET.Sdk\", your " +"NuGet configuration may be incorrect and need to be fixed." +msgstr "" + +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:168 +msgid "" +"A simple way to fix the NuGet configuration file is to regenerate it. In a " +"file explorer window, go to ``%AppData%\\NuGet``. Rename or delete the " +"``NuGet.Config`` file. When you build your Godot project again, the file " +"will be automatically created with default values." +msgstr "" + +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:174 msgid "Creating a C# script" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:163 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:176 msgid "" "After you successfully set up C# for Godot, you should see the following " "option when selecting **Attach Script** in the context menu of a node in " "your scene:" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:168 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:181 msgid "" "Note that while some specifics change, most concepts work the same when " "using C# for scripting. If you're new to Godot, you may want to follow the " @@ -63444,11 +65546,11 @@ msgid "" "easily from GDScript." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:175 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:188 msgid "Project setup and workflow" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:177 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:190 msgid "" "When you create the first C# script, Godot initializes the C# project files " "for your Godot project. This includes generating a C# solution (``.sln``) " @@ -63460,12 +65562,12 @@ msgid "" "let it regenerate." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:189 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:202 msgid "" "Here's a blank C# script with some comments to demonstrate how it works." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:216 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:229 msgid "" "As you can see, functions normally in global scope in GDScript like Godot's " "``print`` function are available in the ``GD`` class which is part of the " @@ -63474,7 +65576,7 @@ msgid "" "`@GlobalScope `." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:223 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:236 msgid "" "Keep in mind that the class you wish to attach to your node should have the " "same name as the ``.cs`` file. Otherwise, you will get the following error " @@ -63482,11 +65584,11 @@ msgid "" "res://XXX.cs\"*" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:229 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:242 msgid "General differences between C# and GDScript" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:231 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:244 msgid "" "The C# API uses ``PascalCase`` instead of ``snake_case`` in GDScript/C++. " "Where possible, fields and getters/setters have been converted to " @@ -63494,11 +65596,11 @@ msgid "" "reasonably possible." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:235 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:248 msgid "For more information, see the :ref:`doc_c_sharp_differences` page." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:239 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:252 msgid "" "You need to (re)build the project assemblies whenever you want to see new " "exported variables or signals in the editor. This build can be manually " @@ -63507,17 +65609,17 @@ msgid "" "reveal the Mono panel, then click the **Build Project** button." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:245 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:258 msgid "" "You will also need to rebuild the project assemblies to apply changes in " "\"tool\" scripts." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:249 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:262 msgid "Current gotchas and known issues" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:251 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:264 msgid "" "As C# support is quite new in Godot, there are some growing pains and things " "that need to be ironed out. Below is a list of the most important issues you " @@ -63526,24 +65628,24 @@ msgid "" "godotengine/godot/labels/topic%3Amono>`_." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:257 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:270 msgid "" "Writing editor plugins is possible, but it is currently quite convoluted." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:258 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:271 msgid "" "State is currently not saved and restored when hot-reloading, with the " "exception of exported variables." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:260 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:273 msgid "" "Attached C# scripts should refer to a class that has a class name that " "matches the file name." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:262 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:275 msgid "" "There are some methods such as ``Get()``/``Set()``, ``Call()``/" "``CallDeferred()`` and signal connection method ``Connect()`` that rely on " @@ -63553,18 +65655,18 @@ msgid "" "can use any custom properties or methods without this limitation." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:270 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:283 msgid "" "Exporting Mono projects is supported for desktop platforms (Linux, Windows " "and macOS), Android, HTML5, and iOS. The only platform not supported yet is " "UWP." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:274 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:287 msgid "Performance of C# in Godot" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:276 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:289 msgid "" "According to some preliminary `benchmarks `_, the performance of C# in Godot — while generally in the same " @@ -63575,11 +65677,11 @@ msgid "" "when talking to Godot." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:284 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:297 msgid "Using NuGet packages in Godot" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:286 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:299 msgid "" "`NuGet `_ packages can be installed and used with " "Godot, as with any C# project. Many IDEs are able to add packages directly. " @@ -63587,24 +65689,24 @@ msgid "" "csproj`` file located in the project root:" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:300 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:313 msgid "" "As of Godot 3.2.3, Godot automatically downloads and sets up newly added " "NuGet packages the next time it builds the project." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:304 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:317 msgid "Profiling your C# code" msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:306 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:319 msgid "" "`Mono log profiler `_ is available for Linux and macOS. Due to a Mono change, it does " "not work on Windows currently." msgstr "" -#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:307 +#: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:320 msgid "" "External Mono profiler like `JetBrains dotTrace `_ can be used as described `here `__" msgstr "" #: ../../docs/tutorials/scripting/gdnative/what_is_gdnative.rst:86 -msgid "`Kotlin `__" +msgid "`Kotlin `__" msgstr "" #: ../../docs/tutorials/scripting/gdnative/what_is_gdnative.rst:87 @@ -64959,7 +67061,7 @@ msgid "" "The ``godot-headers`` repository has different branches. As Godot evolves, " "so does GDNative. While we try to preserve compatibility between version, " "you should always build your GDNative module against headers matching the " -"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"Godot stable branch (e.g. ``3.4``) and ideally actual release (e.g. ``3.4.4-" "stable``) that you use. GDNative modules built against older versions of the " "Godot headers *may* work with newer versions of the engine, but not the " "other way around." @@ -64977,15 +67079,15 @@ msgid "" "If you want to write a GDNative module for a stable version of Godot, look " "at the available Git tags (with ``git tags``) for the one matching your " "engine version. In the ``godot-headers`` repository, such tags are prefixed " -"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " -"use with Godot 3.1.1. In your cloned repository, you can do:" +"with ``godot-``, so you can e.g. checkout the ``godot-3.4.4-stable`` tag for " +"use with Godot 3.4.4. In your cloned repository, you can do:" msgstr "" #: ../../docs/tutorials/scripting/gdnative/gdnative_c_example.rst:97 msgid "" "If a tag matching your stable release is missing for any reason, you can " -"fall back to the matching stable branch (e.g. ``3.1``), which you would also " -"check out with ``git checkout 3.1``." +"fall back to the matching stable branch (e.g. ``3.4``), which you would also " +"check out with ``git checkout 3.4``." msgstr "" #: ../../docs/tutorials/scripting/gdnative/gdnative_c_example.rst:101 @@ -67516,7 +69618,7 @@ msgid "The output from the script will be::" msgstr "" #: ../../docs/tutorials/scripting/evaluating_expressions.rst:199 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:634 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:635 msgid "Built-in functions" msgstr "" @@ -67804,122 +69906,122 @@ msgid "" msgstr "" #: ../../docs/tutorials/scripting/pausing_games.rst:4 -msgid "Pausing games" -msgstr "" - -#: ../../docs/tutorials/scripting/pausing_games.rst:7 -msgid "Pause?" +msgid "Pausing games and process mode" msgstr "" #: ../../docs/tutorials/scripting/pausing_games.rst:9 msgid "" "In most games it is desirable to, at some point, interrupt the game to do " -"something else, such as taking a break or changing options. However, this is " -"not as simple as it seems. The game might be stopped, but it might be " -"desirable that some menus and animations continue working." +"something else, such as taking a break or changing options. Implementing a " +"fine-grained control for what can be paused (and what cannot) is a lot of " +"work, so a simple framework for pausing is provided in Godot." msgstr "" -#: ../../docs/tutorials/scripting/pausing_games.rst:15 -msgid "" -"Implementing a fine-grained control for what can be paused (and what can " -"not) is a lot of work, so a simple framework for pausing is provided in " -"Godot." -msgstr "" - -#: ../../docs/tutorials/scripting/pausing_games.rst:20 +#: ../../docs/tutorials/scripting/pausing_games.rst:16 msgid "How pausing works" msgstr "" -#: ../../docs/tutorials/scripting/pausing_games.rst:22 +#: ../../docs/tutorials/scripting/pausing_games.rst:18 msgid "" -"To set pause mode, the pause state must be set. This is done by assigning " +"To pause the game the pause state must be set. This is done by assigning " "``true`` to the :ref:`SceneTree.paused ` " "property:" msgstr "" -#: ../../docs/tutorials/scripting/pausing_games.rst:34 -msgid "Doing so will have the following behavior:" -msgstr "" - -#: ../../docs/tutorials/scripting/pausing_games.rst:36 -msgid "2D and 3D physics will be stopped." -msgstr "" - -#: ../../docs/tutorials/scripting/pausing_games.rst:37 +#: ../../docs/tutorials/scripting/pausing_games.rst:30 msgid "" -"``_process`` and ``_physics_process`` will not be called anymore in nodes." +"Doing this will cause two things. First, 2D and 3D physics will be stopped " +"for all nodes. Second, the behavior of certain nodes will stop or start " +"depending on their process mode." +msgstr "" + +#: ../../docs/tutorials/scripting/pausing_games.rst:34 +msgid "" +"The physics servers can be made active while the game is paused by using " +"their ``set_active`` methods." msgstr "" #: ../../docs/tutorials/scripting/pausing_games.rst:38 -msgid "``_input`` and ``_input_event`` will not be called anymore either." +msgid "Process Modes" msgstr "" #: ../../docs/tutorials/scripting/pausing_games.rst:40 msgid "" -"This effectively stops the whole game. Calling this function from a script, " -"by default, will result in an unrecoverable state (nothing will work " -"anymore!)." +"Each node in Godot has a \"Pause Mode\" that defines when it processes. It " +"can be found and changed under a node's :ref:`Node ` properties " +"in the inspector." msgstr "" #: ../../docs/tutorials/scripting/pausing_games.rst:45 -msgid "White-listing nodes" +msgid "You can also alter the property with code:" msgstr "" -#: ../../docs/tutorials/scripting/pausing_games.rst:47 -msgid "" -"Before enabling pause, make sure that nodes that must keep working during " -"pause are white-listed. This is done by editing the \"Pause Mode\" property " -"in a node:" +#: ../../docs/tutorials/scripting/pausing_games.rst:60 +msgid "This is what each mode tells a node to do:" msgstr "" -#: ../../docs/tutorials/scripting/pausing_games.rst:53 -msgid "You can achieve the same result in code:" -msgstr "" - -#: ../../docs/tutorials/scripting/pausing_games.rst:69 -msgid "" -"By default, all nodes have this property in the \"Inherit\" state. This " -"means, that they will only process (or not) depending on what this same " -"property is set on the parent node. If the parent is set to \"Inherit\" , " -"then the grandparent will be checked and so on. Ultimately, if a state can't " -"be found in any of the grandparents, the pause state in SceneTree is used. " -"This means that, by default, when the game is paused every node will be " -"paused." -msgstr "" - -#: ../../docs/tutorials/scripting/pausing_games.rst:77 -msgid "So the three possible states for a node are:" -msgstr "" - -#: ../../docs/tutorials/scripting/pausing_games.rst:79 +#: ../../docs/tutorials/scripting/pausing_games.rst:62 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/scripting/pausing_games.rst:81 +#: ../../docs/tutorials/scripting/pausing_games.rst:64 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/scripting/pausing_games.rst:83 +#: ../../docs/tutorials/scripting/pausing_games.rst:66 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/scripting/pausing_games.rst:89 +#: ../../docs/tutorials/scripting/pausing_games.rst:69 msgid "" -"An example of this is creating a popup or panel with controls inside, and " -"set its pause mode to \"Process\" then hide it:" +"By default, all nodes have this property in the \"Inherit\" state. If the " +"parent is set to \"Inherit\", then the grandparent will be checked and so " +"on. If a state can't be found in any of the grandparents, the pause state in " +"SceneTree is used. This means that, by default, when the game is paused " +"every node will be paused. Several things happen when a node stops " +"processing." msgstr "" -#: ../../docs/tutorials/scripting/pausing_games.rst:94 +#: ../../docs/tutorials/scripting/pausing_games.rst:75 msgid "" -"Just by setting the root of the pause popup to \"Process\", all children and " -"grandchildren will inherit that state. This way, this branch of the scene " -"tree will continue working when paused." +"The ``_process``, ``_physics_process``, ``_input``, and ``_input_event`` " +"functions will not be called. However signals still work and cause their " +"connected function to run, even if that function's script is attached to a " +"node that has its pause mode set to \"Stop\"." +msgstr "" + +#: ../../docs/tutorials/scripting/pausing_games.rst:80 +msgid "" +"Animation nodes will pause their current animation, audio nodes will pause " +"their current audio stream, and particles will pause. These resume " +"automatically when the game is no longer paused." +msgstr "" + +#: ../../docs/tutorials/scripting/pausing_games.rst:84 +msgid "" +"It is important to note that even if a node is processing while the game is " +"paused physics will **NOT** work for it by default. As stated earlier this " +"is because the physics servers are turned off. The physics servers can be " +"made active while the game is paused by using their ``set_active`` methods." +msgstr "" + +#: ../../docs/tutorials/scripting/pausing_games.rst:90 +msgid "Pause Menu Example" +msgstr "" + +#: ../../docs/tutorials/scripting/pausing_games.rst:92 +msgid "" +"Here is an example of a pause menu. Create a popup or panel with controls " +"inside, and set its pause mode to \"Process\" then hide it. By setting the " +"root of the pause popup to \"Process\", all children and grandchildren will " +"inherit that state. This way, this branch of the scene tree will continue " +"working when paused." msgstr "" #: ../../docs/tutorials/scripting/pausing_games.rst:98 @@ -67929,11 +70031,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/scripting/pausing_games.rst:116 -msgid "To remove the pause, do the opposite when the pause screen is closed:" -msgstr "" - -#: ../../docs/tutorials/scripting/pausing_games.rst:134 -msgid "And that should be all!" +msgid "To unpause, do the opposite when the pause screen is closed:" msgstr "" #: ../../docs/tutorials/scripting/filesystem.rst:4 @@ -68495,30 +70593,37 @@ msgid "" "desired." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:44 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:45 +msgid "" +"If you're creating an autoload as part of an editor plugin, consider :ref:" +"`registering it automatically in the Project Settings " +"` when the plugin is enabled." +msgstr "" + +#: ../../docs/tutorials/scripting/singletons_autoload.rst:50 msgid "AutoLoad" msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:46 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:52 msgid "" "You can create an AutoLoad to load a scene or a script that inherits from :" "ref:`class_Node`." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:51 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:57 msgid "" "When autoloading a script, a :ref:`class_Node` will be created and the " "script will be attached to it. This node will be added to the root viewport " "before any other scenes are loaded." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:57 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:63 msgid "" "To autoload a scene or script, select **Project > Project Settings** from " "the menu and switch to the **AutoLoad** tab." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:62 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:68 msgid "" "Here you can add any number of scenes or scripts. Each entry in the list " "requires a name, which is assigned as the node's ``name`` property. The " @@ -68527,30 +70632,36 @@ msgid "" "will read these nodes in top-to-bottom order." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:70 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:76 msgid "" "This means that any node can access a singleton named \"PlayerVariables\" " "with:" msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:83 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:89 msgid "" "If the **Enable** column is checked (which is the default), then the " "singleton can be accessed directly without requiring ``get_node()``:" msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:96 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:102 msgid "" "Note that autoload objects (scripts and/or scenes) are accessed just like " "any other node in the scene tree. In fact, if you look at the running scene " "tree, you'll see the autoloaded nodes appear:" msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:103 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:110 +msgid "" +"Autoloads must **not** be removed using ``free()`` or ``queue_free()`` at " +"runtime, or the engine will crash." +msgstr "" + +#: ../../docs/tutorials/scripting/singletons_autoload.rst:114 msgid "Custom scene switcher" msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:105 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:116 msgid "" "This tutorial will demonstrate building a scene switcher using autoloads. " "For basic scene switching, you can use the :ref:`SceneTree.change_scene() " @@ -68559,13 +70670,13 @@ msgid "" "this method provides more functionality." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:111 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:122 msgid "" "To begin, download the template from here: :download:`autoload.zip ` and open it in Godot." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:114 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:125 msgid "" "The project contains two scenes: ``Scene1.tscn`` and ``Scene2.tscn``. Each " "scene contains a label displaying the scene name and a button with its " @@ -68573,17 +70684,17 @@ msgid "" "``Scene1.tscn``. However, pressing the button does nothing." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:120 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:131 msgid "Global.gd" msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:122 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:133 msgid "" "Switch to the **Script** tab and create a new script called ``Global.gd``. " "Make sure it inherits from ``Node``:" msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:127 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:138 msgid "" "The next step is to add this script to the autoLoad list. Open **Project > " "Project Settings** from the menu, switch to the **AutoLoad** tab and select " @@ -68591,13 +70702,13 @@ msgid "" "gd``. Press **Add** to add it to the autoload list:" msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:134 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:145 msgid "" "Now whenever we run any scene in the project, this script will always be " "loaded." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:136 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:147 msgid "" "Returning to the script, it needs to fetch the current scene in the " "`_ready()` function. Both the current scene (the one with the button) and " @@ -68605,13 +70716,13 @@ msgid "" "This means that the last child of root is always the loaded scene." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:168 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:179 msgid "" "Now we need a function for changing the scene. This function needs to free " "the current scene and replace it with the requested one." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:237 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:248 msgid "" "Using :ref:`Object.call_deferred() `, the " "second function will only run once all code from the current scene has " @@ -68619,18 +70730,18 @@ msgid "" "being used (i.e. its code is still running)." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:242 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:253 msgid "" "Finally, we need to fill the empty callback functions in the two scenes:" msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:282 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:293 msgid "" "Run the project and test that you can switch between scenes by pressing the " "button." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:287 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:298 msgid "" "When scenes are small, the transition is instantaneous. However, if your " "scenes are more complex, they may take a noticeable amount of time to " @@ -68638,7 +70749,7 @@ msgid "" "`doc_background_loading`." msgstr "" -#: ../../docs/tutorials/scripting/singletons_autoload.rst:291 +#: ../../docs/tutorials/scripting/singletons_autoload.rst:302 msgid "" "Alternatively, if the loading time is relatively short (less than 3 seconds " "or so), you can display a \"loading plaque\" by showing some kind of 2D " @@ -68856,6 +70967,45 @@ msgid "" "chapter) and :ref:`doc_background_loading`." msgstr "" +#: ../../docs/tutorials/scripting/scene_unique_nodes.rst:4 +msgid "Scene Unique Nodes" +msgstr "" + +#: ../../docs/tutorials/scripting/scene_unique_nodes.rst:9 +msgid "" +"There are times in a project where a node needs to be called from a script. " +"However, its position in the tree might change over time as adjustments are " +"made to a scene, such as a button in a UI scene." +msgstr "" + +#: ../../docs/tutorials/scripting/scene_unique_nodes.rst:14 +msgid "" +"In situations like this, a node can be turned into a scene unique node to " +"avoid having to update a script every time its path is changed." +msgstr "" + +#: ../../docs/tutorials/scripting/scene_unique_nodes.rst:19 +msgid "Creating and using them" +msgstr "" + +#: ../../docs/tutorials/scripting/scene_unique_nodes.rst:21 +msgid "" +"In the Scene tree dock, right-click on a node and select **Access as Scene " +"Unique Name** in the context menu." +msgstr "" + +#: ../../docs/tutorials/scripting/scene_unique_nodes.rst:26 +msgid "" +"After checking this, the node will now have a percent symbol (**%**) next to " +"its name in the scene tree:" +msgstr "" + +#: ../../docs/tutorials/scripting/scene_unique_nodes.rst:31 +msgid "" +"To use a unique node in a script, use the ``%`` symbol and the node's name " +"in the path for ``get_node()``. For example:" +msgstr "" + #: ../../docs/tutorials/shaders/introduction_to_shaders.rst:4 msgid "Introduction to shaders" msgstr "" @@ -69133,7 +71283,7 @@ msgid "Void datatype, useful only for functions that return nothing." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:25 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:594 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:595 msgid "**bool**" msgstr "" @@ -69166,7 +71316,7 @@ msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:33 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:596 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:597 msgid "**int**" msgstr "" @@ -69231,7 +71381,7 @@ msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:49 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:598 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:599 msgid "**float**" msgstr "" @@ -69240,7 +71390,7 @@ msgid "Floating-point scalar." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:51 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:600 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:601 msgid "**vec2**" msgstr "" @@ -69249,7 +71399,7 @@ msgid "Two-component vector of floating-point values." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:53 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:602 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:603 msgid "**vec3**" msgstr "" @@ -69258,8 +71408,8 @@ msgid "Three-component vector of floating-point values." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:55 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:571 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:604 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:572 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:605 msgid "**vec4**" msgstr "" @@ -69284,8 +71434,8 @@ msgid "3x3 matrix, in column major order." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:61 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:606 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:608 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:607 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:609 msgid "**mat4**" msgstr "" @@ -69294,12 +71444,12 @@ msgid "4x4 matrix, in column major order." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:63 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:575 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:577 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:579 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:581 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:583 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:585 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:576 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:578 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:580 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:582 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:584 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:586 msgid "**sampler2D**" msgstr "" @@ -69834,144 +71984,144 @@ msgstr "" msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " "provides optional shader hints to make the compiler understand for what the " -"uniform is used." +"uniform is used, and how the editor should allow users to modify it." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:564 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:565 msgid "" "It's important to understand that textures that are supplied as color " "require hints for proper sRGB->linear conversion (i.e. ``hint_albedo``), as " "Godot's 3D engine renders in linear color space." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:566 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:567 msgid "Full list of hints below:" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:569 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:570 msgid "Hint" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:571 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:572 msgid "hint_color" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:571 -msgid "Used as color" +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:572 +msgid "Used as color." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:573 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:574 msgid "**int, float**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:573 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:574 msgid "hint_range(min, max[, step])" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:573 -msgid "Used as range (with min/max/step)" +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:574 +msgid "Restricted to values in a range (with min/max/step)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:575 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:576 msgid "hint_albedo" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:575 -msgid "Used as albedo color, default white" +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:576 +msgid "Used as albedo color, default white." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:577 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:578 msgid "hint_black_albedo" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:577 -msgid "Used as albedo color, default black" +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:578 +msgid "Used as albedo color, default black." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:579 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:580 msgid "hint_normal" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:579 -msgid "Used as normalmap" +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:580 +msgid "Used as normalmap." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:581 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:582 msgid "hint_white" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:581 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:582 msgid "As value, default to white." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:583 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:584 msgid "hint_black" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:583 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:584 msgid "As value, default to black" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:585 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:586 msgid "hint_aniso" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:585 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:586 msgid "As flowmap, default to right." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:588 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:589 msgid "" "GDScript uses different variable types than GLSL does, so when passing " "variables from GDScript to shaders, Godot converts the type automatically. " "Below is a table of the corresponding types:" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:592 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:593 msgid "GDScript type" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:592 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:593 msgid "GLSL type" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:600 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:601 msgid "**Vector2**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:602 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:603 msgid "**Vector3**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:604 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:605 #: ../../docs/tutorials/ui/gui_skinning.rst:53 msgid "**Color**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:606 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:607 msgid "**Transform**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:608 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:609 msgid "**Transform2D**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:611 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:612 msgid "" "Be careful when setting shader uniforms from GDScript, no error will be " "thrown if the type does not match. Your shader will just exhibit undefined " "behavior." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:614 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:615 msgid "Uniforms can also be assigned default values:" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:624 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:625 msgid "Built-in variables" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:626 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:627 msgid "" "A large number of built-in variables are available, like ``UV``, ``COLOR`` " "and ``VERTEX``. What variables are available depends on the type of shader " @@ -69980,778 +72130,778 @@ msgid "" "variables that are available, please see the corresponding pages:" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:629 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:630 msgid ":ref:`Spatial shaders `" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:630 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:631 msgid ":ref:`Canvas item shaders `" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:631 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:632 msgid ":ref:`Particle shaders `" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:636 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:637 msgid "" "A large number of built-in functions are supported, conforming to GLSL ES " "3.0. When vec_type (float), vec_int_type, vec_uint_type, vec_bool_type " "nomenclature is used, it can be scalar or vector." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:639 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:640 msgid "" "For a list of the functions that are not available in the GLES2 backend, " "please see the :ref:`Differences between GLES2 and GLES3 doc " "`." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:645 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:646 msgid "vec_type **radians** (vec_type degrees)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:645 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:646 msgid "Convert degrees to radians" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:647 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:648 msgid "vec_type **degrees** (vec_type radians)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:647 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:648 msgid "Convert radians to degrees" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:649 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:650 msgid "vec_type **sin** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:649 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:650 msgid "Sine" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:651 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:652 msgid "vec_type **cos** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:651 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:652 msgid "Cosine" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:653 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:654 msgid "vec_type **tan** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:653 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:654 msgid "Tangent" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:655 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:656 msgid "vec_type **asin** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:655 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:656 msgid "Arcsine" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:657 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:658 msgid "vec_type **acos** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:657 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:658 msgid "Arccosine" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:659 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:660 msgid "vec_type **atan** (vec_type y_over_x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:659 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:660 msgid "Arctangent" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:661 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:662 msgid "vec_type **atan** (vec_type y, vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:661 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:662 msgid "Arctangent to convert vector to angle" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:663 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:664 msgid "vec_type **sinh** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:663 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:664 msgid "Hyperbolic sine" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:665 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:666 msgid "vec_type **cosh** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:665 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:666 msgid "Hyperbolic cosine" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:667 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:668 msgid "vec_type **tanh** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:667 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:668 msgid "Hyperbolic tangent" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:669 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:670 msgid "vec_type **asinh** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:669 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:670 msgid "Inverse hyperbolic sine" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:671 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:672 msgid "vec_type **acosh** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:671 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:672 msgid "Inverse hyperbolic cosine" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:673 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:674 msgid "vec_type **atanh** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:673 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:674 msgid "Inverse hyperbolic tangent" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:675 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:676 msgid "vec_type **pow** (vec_type x, vec_type y)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:675 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:676 msgid "Power (undefined if ``x`` < 0 or if ``x`` = 0 and ``y`` <= 0)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:677 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:678 msgid "vec_type **exp** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:677 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:678 msgid "Base-e exponential" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:679 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:680 msgid "vec_type **exp2** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:679 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:680 msgid "Base-2 exponential" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:681 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:682 msgid "vec_type **log** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:681 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:682 msgid "Natural logarithm" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:683 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:684 msgid "vec_type **log2** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:683 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:684 msgid "Base-2 logarithm" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:685 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:686 msgid "vec_type **sqrt** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:685 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:686 msgid "Square root" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:687 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:688 msgid "vec_type **inversesqrt** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:687 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:688 msgid "Inverse square root" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:689 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:690 msgid "vec_type **abs** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:689 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:691 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:690 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:692 msgid "Absolute" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:691 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:692 msgid "ivec_type **abs** (ivec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:693 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:694 msgid "vec_type **sign** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:693 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:695 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:694 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:696 msgid "Sign" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:695 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:696 msgid "ivec_type **sign** (ivec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:697 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:698 msgid "vec_type **floor** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:697 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:698 msgid "Floor" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:699 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:700 msgid "vec_type **round** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:699 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:700 msgid "Round" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:701 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:702 msgid "vec_type **roundEven** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:701 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:702 msgid "Round to the nearest even number" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:703 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:704 msgid "vec_type **trunc** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:703 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:704 msgid "Truncation" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:705 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:706 msgid "vec_type **ceil** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:705 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:706 msgid "Ceil" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:707 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:708 msgid "vec_type **fract** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:707 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:708 msgid "Fractional" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:709 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:710 msgid "vec_type **mod** (vec_type x, vec_type y)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:709 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:711 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:710 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:712 msgid "Remainder" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:711 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:712 msgid "vec_type **mod** (vec_type x , float y)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:713 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:714 msgid "vec_type **modf** (vec_type x, out vec_type i)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:713 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:714 msgid "Fractional of ``x``, with ``i`` as integer part" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:715 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:716 msgid "vec_type **min** (vec_type a, vec_type b)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:715 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:716 msgid "Minimum" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:717 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:718 msgid "vec_type **max** (vec_type a, vec_type b)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:717 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:718 msgid "Maximum" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:719 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:720 msgid "vec_type **clamp** (vec_type x, vec_type min, vec_type max)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:719 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:720 msgid "Clamp to ``min..max``" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:721 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:722 msgid "float **mix** (float a, float b, float c)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:721 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:722 msgid "Linear interpolate" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:723 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:724 msgid "vec_type **mix** (vec_type a, vec_type b, float c)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:723 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:724 msgid "Linear interpolate (scalar coefficient)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:725 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:726 msgid "vec_type **mix** (vec_type a, vec_type b, vec_type c)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:725 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:726 msgid "Linear interpolate (vector coefficient)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:727 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:728 msgid "vec_type **mix** (vec_type a, vec_type b, bvec_type c)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:727 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:728 msgid "Linear interpolate (boolean-vector selection)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:729 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:730 msgid "vec_type **step** (vec_type a, vec_type b)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:729 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:730 msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:731 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:732 msgid "vec_type **step** (float a, vec_type b)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:731 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:732 msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:733 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:734 msgid "vec_type **smoothstep** (vec_type a, vec_type b, vec_type c)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:733 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:735 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:734 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:736 msgid "Hermite interpolate" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:735 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:736 msgid "vec_type **smoothstep** (float a, float b, vec_type c)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:737 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:738 msgid "bvec_type **isnan** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:737 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:738 msgid "Returns ``true`` if scalar or vector component is ``NaN``" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:739 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:740 msgid "bvec_type **isinf** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:739 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:740 msgid "Returns ``true`` if scalar or vector component is ``INF``" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:741 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:742 msgid "ivec_type **floatBitsToInt** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:741 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:742 msgid "Float->Int bit copying, no conversion" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:743 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:744 msgid "uvec_type **floatBitsToUint** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:743 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:744 msgid "Float->UInt bit copying, no conversion" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:745 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:746 msgid "vec_type **intBitsToFloat** (ivec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:745 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:746 msgid "Int->Float bit copying, no conversion" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:747 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:748 msgid "vec_type **uintBitsToFloat** (uvec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:747 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:748 msgid "UInt->Float bit copying, no conversion" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:749 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:750 msgid "float **length** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:749 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:750 msgid "Vector length" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:751 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:752 msgid "float **distance** (vec_type a, vec_type b)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:751 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:752 msgid "Distance between vectors i.e ``length(a - b)``" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:753 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:754 msgid "float **dot** (vec_type a, vec_type b)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:755 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:756 msgid "vec3 **cross** (vec3 a, vec3 b)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:757 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:758 msgid "vec_type **normalize** (vec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:757 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:758 msgid "Normalize to unit length" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:759 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:760 msgid "vec3 **reflect** (vec3 I, vec3 N)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:759 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:760 msgid "Reflect" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:761 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:762 msgid "vec3 **refract** (vec3 I, vec3 N, float eta)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:761 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:762 msgid "Refract" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:763 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:764 msgid "vec_type **faceforward** (vec_type N, vec_type I, vec_type Nref)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:763 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:764 msgid "If ``dot(Nref, I)`` < 0, return N, otherwise –N" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:765 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:766 msgid "mat_type **matrixCompMult** (mat_type x, mat_type y)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:765 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:766 msgid "Matrix component multiplication" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:767 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:768 msgid "mat_type **outerProduct** (vec_type column, vec_type row)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:767 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:768 msgid "Matrix outer product" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:769 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:770 msgid "mat_type **transpose** (mat_type m)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:769 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:770 msgid "Transpose matrix" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:771 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:772 msgid "float **determinant** (mat_type m)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:771 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:772 msgid "Matrix determinant" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:773 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:774 msgid "mat_type **inverse** (mat_type m)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:773 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:774 msgid "Inverse matrix" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:775 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:776 msgid "bvec_type **lessThan** (vec_type x, vec_type y)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:775 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:776 msgid "Bool vector comparison on < int/uint/float vectors" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:777 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:778 msgid "bvec_type **greaterThan** (vec_type x, vec_type y)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:777 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:778 msgid "Bool vector comparison on > int/uint/float vectors" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:779 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:780 msgid "bvec_type **lessThanEqual** (vec_type x, vec_type y)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:779 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:780 msgid "Bool vector comparison on <= int/uint/float vectors" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:781 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:782 msgid "bvec_type **greaterThanEqual** (vec_type x, vec_type y)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:781 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:782 msgid "Bool vector comparison on >= int/uint/float vectors" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:783 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:784 msgid "bvec_type **equal** (vec_type x, vec_type y)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:783 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:784 msgid "Bool vector comparison on == int/uint/float vectors" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:785 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:786 msgid "bvec_type **notEqual** (vec_type x, vec_type y)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:785 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:786 msgid "Bool vector comparison on != int/uint/float vectors" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:787 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:788 msgid "bool **any** (bvec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:787 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:788 msgid "Any component is ``true``" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:789 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:790 msgid "bool **all** (bvec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:789 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:790 msgid "All components are ``true``" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:791 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:792 msgid "bvec_type **not** (bvec_type x)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:791 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:792 msgid "Invert boolean vector" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:793 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:794 msgid "ivec2 **textureSize** (sampler2D_type s, int lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:793 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:794 msgid "Get the size of a 2D texture" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:795 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:796 msgid "ivec3 **textureSize** (sampler2DArray_type s, int lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:795 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:796 msgid "Get the size of a 2D texture array" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:797 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:798 msgid "ivec3 **textureSize** (sampler3D s, int lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:797 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:798 msgid "Get the size of a 3D texture" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:799 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:800 msgid "ivec2 **textureSize** (samplerCube s, int lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:799 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:800 msgid "Get the size of a cubemap texture" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:801 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:802 msgid "vec4_type **texture** (sampler2D_type s, vec2 uv [, float bias])" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:801 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:802 msgid "Perform a 2D texture read" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:803 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:804 msgid "vec4_type **texture** (sampler2DArray_type s, vec3 uv [, float bias])" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:803 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:804 msgid "Perform a 2D texture array read" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:805 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:806 msgid "vec4_type **texture** (sampler3D_type s, vec3 uv [, float bias])" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:805 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:806 msgid "Perform a 3D texture read" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:807 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:808 msgid "vec4 **texture** (samplerCube s, vec3 uv [, float bias])" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:807 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:808 msgid "Perform a cubemap texture read" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:809 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:810 msgid "vec4_type **textureProj** (sampler2D_type s, vec3 uv [, float bias])" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:809 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:811 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:810 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:812 msgid "Perform a 2D texture read with projection" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:811 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:812 msgid "vec4_type **textureProj** (sampler2D_type s, vec4 uv [, float bias])" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:813 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:814 msgid "vec4_type **textureProj** (sampler3D_type s, vec4 uv [, float bias])" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:813 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:814 msgid "Perform a 3D texture read with projection" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:815 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:816 msgid "vec4_type **textureLod** (sampler2D_type s, vec2 uv, float lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:815 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:816 msgid "Perform a 2D texture read at custom mipmap" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:817 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:818 msgid "vec4_type **textureLod** (sampler2DArray_type s, vec3 uv, float lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:817 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:818 msgid "Perform a 2D texture array read at custom mipmap" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:819 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:820 msgid "vec4_type **textureLod** (sampler3D_type s, vec3 uv, float lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:819 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:821 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:820 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:822 msgid "Perform a 3D texture read at custom mipmap" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:821 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:822 msgid "vec4 **textureLod** (samplerCube s, vec3 uv, float lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:823 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:824 msgid "vec4_type **textureProjLod** (sampler2D_type s, vec3 uv, float lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:823 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:825 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:824 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:826 msgid "Perform a 2D texture read with projection/LOD" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:825 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:826 msgid "vec4_type **textureProjLod** (sampler2D_type s, vec4 uv, float lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:827 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:828 msgid "vec4_type **textureProjLod** (sampler3D_type s, vec4 uv, float lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:827 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:828 msgid "Perform a 3D texture read with projection/LOD" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:829 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:830 msgid "vec4_type **texelFetch** (sampler2D_type s, ivec2 uv, int lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:829 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:831 -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:833 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:830 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:832 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:834 msgid "Fetch a single texel using integer coordinates" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:831 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:832 msgid "vec4_type **texelFetch** (sampler2DArray_type s, ivec3 uv, int lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:833 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:834 msgid "vec4_type **texelFetch** (sampler3D_type s, ivec3 uv, int lod)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:835 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:836 msgid "vec_type **dFdx** (vec_type p)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:835 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:836 msgid "Derivative in ``x`` using local differencing" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:837 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:838 msgid "vec_type **dFdy** (vec_type p)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:837 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:838 msgid "Derivative in ``y`` using local differencing" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:839 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:840 msgid "vec_type **fwidth** (vec_type p)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:839 +#: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:840 msgid "Sum of absolute derivative in ``x`` and ``y``" msgstr "" @@ -71052,8 +73202,8 @@ msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:94 #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:139 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:191 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:316 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:210 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:339 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:52 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:114 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:165 @@ -71064,7 +73214,7 @@ msgid "Built-in" msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:96 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:318 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:341 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:54 #: ../../docs/tutorials/shaders/shader_reference/particle_shader.rst:55 msgid "in float **TIME**" @@ -71144,14 +73294,14 @@ msgid "" msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:141 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:193 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:320 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:212 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:343 msgid "in vec2 **VIEWPORT_SIZE**" msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:141 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:193 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:320 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:212 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:343 msgid "Size of viewport (in pixels)." msgstr "" @@ -71160,20 +73310,20 @@ msgid "inout mat4 **WORLD_MATRIX**" msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:143 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:198 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:327 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:217 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:350 msgid "Model space to world space transform." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:145 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:200 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:329 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:219 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:352 msgid "in mat4 **INV_CAMERA_MATRIX**" msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:145 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:200 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:329 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:219 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:352 msgid "World space to view space transform." msgstr "" @@ -71182,21 +73332,21 @@ msgid "inout mat4 **PROJECTION_MATRIX**" msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:147 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:204 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:333 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:223 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:356 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:120 msgid "View space to clip space transform." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:149 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:202 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:331 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:221 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:354 msgid "in mat4 **CAMERA_MATRIX**" msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:149 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:202 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:331 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:221 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:354 msgid "View space to world space transform." msgstr "" @@ -71213,8 +73363,8 @@ msgid "inout mat4 **INV_PROJECTION_MATRIX**" msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:153 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:206 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:335 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:225 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:358 msgid "Clip space to view space transform." msgstr "" @@ -71235,7 +73385,7 @@ msgid "If written to, overrides final vertex position." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:159 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:214 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:233 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:171 msgid "inout vec3 **NORMAL**" msgstr "" @@ -71245,7 +73395,7 @@ msgid "Normal in local coordinates." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:161 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:216 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:235 msgid "inout vec3 **TANGENT**" msgstr "" @@ -71254,7 +73404,7 @@ msgid "Tangent in local coordinates." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:163 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:218 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:237 msgid "inout vec3 **BINORMAL**" msgstr "" @@ -71263,7 +73413,7 @@ msgid "Binormal in local coordinates." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:165 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:242 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:261 msgid "out float **ROUGHNESS**" msgstr "" @@ -71289,14 +73439,14 @@ msgid "UV secondary channel." msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:171 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:228 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:349 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:247 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:372 msgid "in bool **OUTPUT_IS_SRGB**" msgstr "" #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:171 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:228 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:349 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:247 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:372 msgid "" "``true`` when calculations happen in sRGB color space (``true`` in GLES2, " "``false`` in GLES3)." @@ -71339,12 +73489,21 @@ msgstr "" msgid "Instance custom data (for particles, mostly)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:184 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:185 +msgid "" +"``MODELVIEW_MATRIX`` combines both the ``WORLD_MATRIX`` and " +"``INV_CAMERA_MATRIX`` and is better suited when floating point issues may " +"arise. For example, if the object is very far away from the world origin, " +"you may run into floating point issues when using the seperated " +"``WORLD_MATRIX`` and ``INV_CAMERA_MATRIX``." +msgstr "" + +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:188 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:144 msgid "Fragment built-ins" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:186 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:190 msgid "" "The default use of a Godot fragment processor function is to set up the " "material properties of your object and to let the built-in renderer handle " @@ -71353,315 +73512,326 @@ msgid "" "corresponding functionality." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:195 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:322 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:194 +msgid "Below are examples of common variables calculated using the built-ins:" +msgstr "" + +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:206 +msgid "" +"A commonly used alternative to ``WORLD_MATRIX[3].xyz`` is to use ``vec3 " +"origin = (WORLD_MATRIX * vec4(0,0,0,1)).xyz``. It is more efficient to use " +"``WORLD_MATRIX[3].xyz`` as it avoids the matrix multiplication." +msgstr "" + +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:214 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:345 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:167 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:220 msgid "in vec4 **FRAGCOORD**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:195 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:214 msgid "" "Coordinate of pixel center in screen space. ``xy`` specifies position in " "window, ``z`` specifies fragment depth if ``DEPTH`` is not used. Origin is " "lower-left." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:198 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:327 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:217 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:350 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:116 msgid "in mat4 **WORLD_MATRIX**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:204 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:333 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:223 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:356 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:120 msgid "in mat4 **PROJECTION_MATRIX**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:206 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:335 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:225 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:358 msgid "in mat4 **INV_PROJECTION_MATRIX**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:208 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:227 msgid "in vec3 **VERTEX**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:208 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:227 msgid "Vertex that comes from vertex function (default, in view space)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:210 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:343 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:229 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:366 msgid "in vec3 **VIEW**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:210 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:229 msgid "Vector from camera to fragment position (in view space)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:212 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:231 msgid "in bool **FRONT_FACING**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:212 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:231 msgid "``true`` if current face is front face." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:214 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:233 msgid "Normal that comes from vertex function (default, in view space)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:216 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:235 msgid "Tangent that comes from vertex function." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:218 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:237 msgid "Binormal that comes from vertex function." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:220 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:239 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:173 msgid "out vec3 **NORMALMAP**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:220 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:239 msgid "Set normal here if reading normal from a texture instead of NORMAL." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:222 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:241 msgid "out float **NORMALMAP_DEPTH**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:222 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:241 msgid "Depth from variable above. Defaults to 1.0." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:224 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:339 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:243 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:362 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:178 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:227 msgid "in vec2 **UV**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:224 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:339 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:243 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:362 msgid "UV that comes from vertex function." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:226 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:341 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:245 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:364 msgid "in vec2 **UV2**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:226 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:341 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:245 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:364 msgid "UV2 that comes from vertex function." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:230 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:249 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:229 msgid "in vec4 **COLOR**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:230 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:249 msgid "COLOR that comes from vertex function." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:232 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:251 msgid "out vec3 **ALBEDO**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:232 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:251 msgid "Albedo (default white)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:234 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:356 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:253 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:379 msgid "out float **ALPHA**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:234 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:356 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:253 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:379 msgid "" "Alpha (0..1); if written to, the material will go to the transparent " "pipeline." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:236 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:255 msgid "out float **ALPHA_SCISSOR**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:236 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:255 msgid "If written to, values below a certain amount of alpha are discarded." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:238 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:257 msgid "out float **METALLIC**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:238 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:257 msgid "Metallic (0..1)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:240 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:259 msgid "out float **SPECULAR**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:240 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:259 msgid "" "Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:242 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:261 msgid "Roughness (0..1)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:244 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:263 msgid "out float **RIM**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:244 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:263 msgid "Rim (0..1). If used, Godot calculates rim lighting." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:246 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:265 msgid "out float **RIM_TINT**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:246 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:265 msgid "" "Rim Tint, goes from 0 (white) to 1 (albedo). If used, Godot calculates rim " "lighting." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:248 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:267 msgid "out float **CLEARCOAT**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:248 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:267 msgid "Small added specular blob. If used, Godot calculates Clearcoat." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:250 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:269 msgid "out float **CLEARCOAT_GLOSS**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:250 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:269 msgid "Gloss of Clearcoat. If used, Godot calculates Clearcoat." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:252 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:271 msgid "out float **ANISOTROPY**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:252 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:271 msgid "For distorting the specular blob according to tangent space." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:254 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:273 msgid "out vec2 **ANISOTROPY_FLOW**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:254 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:273 msgid "Distortion direction, use with flowmaps." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:256 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:275 msgid "out float **SSS_STRENGTH**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:256 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:275 msgid "" "Strength of Subsurface Scattering. If used, Subsurface Scattering will be " "applied to object." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:258 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:277 msgid "out vec3 **TRANSMISSION**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:258 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:277 msgid "" "Transmission mask (default 0,0,0). Allows light to pass through object. Only " "applied if used." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:260 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:279 msgid "out vec3 **EMISSION**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:260 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:279 msgid "Emission color (can go over 1,1,1 for HDR)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:262 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:281 msgid "out float **AO**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:262 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:281 msgid "Strength of Ambient Occlusion. For use with pre-baked AO." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:264 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:283 msgid "out float **AO_LIGHT_AFFECT**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:264 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:283 msgid "How much AO affects lights (0..1; default 0)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:266 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:285 msgid "sampler2D **SCREEN_TEXTURE**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:266 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:285 msgid "" "Built-in Texture for reading from the screen. Mipmaps contain increasingly " "blurred copies." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:268 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:287 msgid "sampler2D **DEPTH_TEXTURE**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:268 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:287 msgid "" "Built-in Texture for reading depth from the screen. Must convert to linear " "using INV_PROJECTION." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:270 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:289 msgid "out float **DEPTH**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:270 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:289 msgid "Custom depth value (0..1)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:272 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:291 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:195 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:243 msgid "in vec2 **SCREEN_UV**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:272 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:291 msgid "Screen UV coordinate for current pixel." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:274 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:293 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:199 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:245 msgid "in vec2 **POINT_COORD**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:274 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:293 msgid "Point Coordinate for drawing points with POINT_SIZE." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:279 -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:370 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:298 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:393 msgid "" "Shaders going through the transparent pipeline when ``ALPHA`` is written to " "may exhibit transparency sorting issues. Read the :ref:`transparency sorting " @@ -71670,12 +73840,12 @@ msgid "" "and ways to avoid issues." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:285 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:304 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:207 msgid "Light built-ins" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:287 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:306 msgid "" "Writing light processor functions is completely optional. You can skip the " "light function by setting render_mode to ``unshaded``. If no light function " @@ -71684,31 +73854,38 @@ msgid "" "render_mode)." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:292 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:311 msgid "" "To write a light function, assign something to ``DIFFUSE_LIGHT`` or " "``SPECULAR_LIGHT``. Assigning nothing means no light is processed." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:295 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:314 msgid "" "The light function is called for every light in every pixel. It is called " "within a loop for each light type." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:298 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:317 msgid "" "Below is an example of a custom light function using a Lambertian lighting " "model:" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:306 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:325 msgid "" "If you want the lights to add together, add the light contribution to " "``DIFFUSE_LIGHT`` using ``+=``, rather than overwriting it." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:310 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:329 +msgid "" +"In GLES2, lights will always be added together even if you override " +"``DIFFUSE_LIGHT`` using ``=``. This is due to lighting being computed in " +"multiple passes (one for each light), unlike GLES3." +msgstr "" + +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:333 msgid "" "The ``light()`` function won't be run if the ``vertex_lighting`` render mode " "is enabled, or if **Rendering > Quality > Shading > Force Vertex Shading** " @@ -71716,91 +73893,91 @@ msgid "" "platforms.)" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:318 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:341 msgid "Elapsed total time in seconds." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:322 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:345 msgid "" "Coordinate of pixel center in screen space. ``xy`` specifies position in " "window, ``z`` specifies fragment depth if ``DEPTH`` is not used. Origin is " "lower-left." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:337 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:360 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:224 msgid "in vec3 **NORMAL**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:337 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:360 msgid "Normal vector, in view space." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:343 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:366 msgid "View vector, in view space." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:345 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:368 msgid "in vec3 **LIGHT**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:345 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:368 msgid "Light Vector, in view space." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:347 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:370 msgid "in vec3 **ATTENUATION**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:347 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:370 msgid "Attenuation based on distance or shadow." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:352 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:375 msgid "in vec3 **ALBEDO**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:352 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:375 msgid "Base albedo." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:354 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:377 msgid "in vec3 **LIGHT_COLOR**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:354 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:377 msgid "Color of light multiplied by energy." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:359 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:382 msgid "in float **ROUGHNESS**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:359 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:382 msgid "Roughness." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:361 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:384 msgid "in vec3 **TRANSMISSION**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:361 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:384 msgid "Transmission mask from fragment function." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:363 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:386 msgid "out vec3 **DIFFUSE_LIGHT**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:363 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:386 msgid "Diffuse light result." msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:365 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:388 msgid "out vec3 **SPECULAR_LIGHT**" msgstr "" -#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:365 +#: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:388 msgid "Specular light result." msgstr "" @@ -72680,7 +74857,7 @@ msgid "" "You have decided to start writing your own custom Spatial shader. Maybe you " "saw a cool trick online that was done with shaders, or you have found that " "the :ref:`SpatialMaterial ` isn't quite meeting your " -"needs. Either way, you have decided to write your own and now you need " +"needs. Either way, you have decided to write your own and now you need to " "figure out where to start." msgstr "" @@ -75560,11 +77737,11 @@ msgid "" "up in your projects." msgstr "" -#: ../../docs/tutorials/ui/index.rst:28 +#: ../../docs/tutorials/ui/index.rst:29 msgid "Control node tutorials" msgstr "" -#: ../../docs/tutorials/ui/index.rst:30 +#: ../../docs/tutorials/ui/index.rst:31 msgid "" "The following articles cover specific details of using particular control " "nodes." @@ -76346,11 +78523,37 @@ msgid "" "theme type as one of the arguments." msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:131 +#: ../../docs/tutorials/ui/gui_skinning.rst:130 +msgid "" +"To give more customization opportunities types can also be linked together " +"as type variations. This is another use-case for custom theme types. For " +"example, a theme can contain a type ``Header`` which can be marked as a " +"variation of the base ``Label`` type. An individual ``Label`` control can " +"then be set to use the ``Header`` variation for its type, and every time a " +"theme item is requested from a theme this variation will be used before any " +"other type. This allows to store various presets of theme items for the same " +"class of the control node in the single ``Theme`` resource." +msgstr "" + +#: ../../docs/tutorials/ui/gui_skinning.rst:140 +msgid "" +"Only variations available from the default theme or defined in the custom " +"project theme are shown in the Inspector dock as options. You can still " +"input manually the name of a variation that is defined outside of those two " +"places, but it is recommended to keep all variations to the project theme." +msgstr "" + +#: ../../docs/tutorials/ui/gui_skinning.rst:145 +msgid "" +"You can learn more about creating and using theme type variations in a :ref:" +"`dedicated article `." +msgstr "" + +#: ../../docs/tutorials/ui/gui_skinning.rst:149 msgid "Customizing a control" msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:133 +#: ../../docs/tutorials/ui/gui_skinning.rst:151 msgid "" "Each control node can be customized directly without the use of themes. This " "is called local overrides. Every theme property from the control's class " @@ -76360,7 +78563,7 @@ msgid "" "including this control's children." msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:143 +#: ../../docs/tutorials/ui/gui_skinning.rst:161 msgid "" "Local overrides are less useful for the visual flair of your user interface, " "especially if you aim for consistency. However, for layout nodes these are " @@ -76370,17 +78573,17 @@ msgid "" "` stores its customizable margins in its theme items." msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:150 +#: ../../docs/tutorials/ui/gui_skinning.rst:168 msgid "" "Whenever a control has a local theme item override, this is the value that " "it uses. Values provided by the theme are ignored." msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:156 +#: ../../docs/tutorials/ui/gui_skinning.rst:174 msgid "Customizing a project" msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:158 +#: ../../docs/tutorials/ui/gui_skinning.rst:176 msgid "" "Out of the box each project adopts the default project theme provided by " "Godot. The default theme itself is constant and cannot be changed, but its " @@ -76389,7 +78592,7 @@ msgid "" "of control nodes." msgstr "" -#: ../../docs/tutorials/ui/gui_skinning.rst:163 +#: ../../docs/tutorials/ui/gui_skinning.rst:181 msgid "" "There are two project settings that can be adjusted to affect your entire " "project: :ref:`gui/theme/custom` node needs to have a different look than what is normally " +"defined by a :ref:`Theme `. Every control node has theme " +"property overrides, which allow you to redefine the styling for each " +"individual UI element." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:14 +msgid "" +"This approach quickly becomes hard to manage, if you need to share the same " +"custom look between several controls. Imagine that you use gray, blue, and " +"red variants of :ref:`Button ` throughout your project. " +"Setting it up every time you add a new button element to your interface is a " +"tedious task." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:19 +msgid "" +"To help with the organization and to better utilize the :ref:`power of " +"themes ` you can use theme type variations. These work " +"like normal theme types, but instead of being self-sufficient and standalone " +"they extend another, base type." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:23 +msgid "" +"Following the previous example, your theme can have some styles, colors, and " +"fonts defined for the ``Button`` type, customizing the looks of every button " +"element in your UI. To then have a gray, red, or blue button you would " +"create a new type, e.g. ``GrayButton``, and mark it as a variation of the " +"base ``Button`` type." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:28 +msgid "" +"Type variations can replace some aspects of the base type, but keep others. " +"They can also define properties that the base style hasn't defined. For " +"example, your ``GrayButton`` can override the ``normal`` style from the base " +"``Button`` and add ``font_color`` that ``Button`` has never defined. The " +"control will use a combination of both types giving priority to the type " +"variation." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:35 +msgid "" +"The way controls resolve what theme items they use from each type and each " +"theme is better described in the :ref:`Customizing a project " +"` section of the \"Introduction to GUI skinning\" " +"article." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:40 +msgid "Creating a type variation" +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:42 +msgid "" +"To create a type variation open the theme editor, then click the plus icon " +"next to the **Type** dropdown on the right side of the editor. Type in what " +"you want to name your theme type variation in the text box, then click **Add " +"Type**." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:46 +msgid "" +"Below the **Type** dropdown are the property tabs. Switch to the tab with a " +"wrench and screwdriver icon." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:52 +msgid "" +"Click on the plus icon next to the **Base Type** field. You can select the " +"base type there, which would typically be the name of a control node class " +"(e.g., ``Button``, ``Label``, etc). Type variations can also chain and " +"extend other type variations. This works in the same way control nodes " +"inherit styling of their base class. For example, ``CheckButton`` inherits " +"styles from ``Button`` because corresponding node types extend each other." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:58 +msgid "" +"After you select the base type, you should now be able to see its properties " +"on the other tabs in the theme editor. You can edit them as usual." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:62 +msgid "Using a type variation" +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:64 +msgid "" +"Now that a type variation has been created you can apply it to your nodes. " +"In the inspector dock, under the **Theme** property of a control node, you " +"can find the **Theme Type Variation** property. It is empty by default, " +"which means that only the base type has an effect on this node." +msgstr "" + +#: ../../docs/tutorials/ui/gui_theme_type_variations.rst:69 +msgid "" +"You can either select a type variations from a dropdown list, or input its " +"name manually. Variations appear on the list only if the type variation " +"belongs to the project-wide theme, which you can configure in the project " +"settings. For any other case you have to input the name of the variation " +"manually. Click on the pencil icon to the right. Then type in the name of " +"the type variation and click the check mark icon or press enter. If a type " +"variation with that name exists it will now be used by the node." +msgstr "" + #: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:4 msgid "BBCode in RichTextLabel" msgstr "" @@ -77221,7 +79538,14 @@ msgid "" "the Inspector through the **Custom Effects** property." msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:226 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:228 +msgid "" +"If the custom effect is not registered within the RichTextLabel's **Custom " +"Effects** property, no effect will be visible and the original tag will be " +"left as-is." +msgstr "" + +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:232 msgid "" "There is only one function that you need to extend: " "``_process_custom_fx(char_fx)``. Optionally, you can also provide a custom " @@ -77230,11 +79554,11 @@ msgid "" "to determine what the BBCode tag should be." msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:232 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:238 msgid "``_process_custom_fx``" msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:234 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:240 msgid "" "This is where the logic of each effect takes place and is called once per " "character during the draw phase of text rendering. This passes in a :ref:" @@ -77242,47 +79566,47 @@ msgid "" "the associated character is rendered:" msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:238 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:244 msgid "" "``identity`` specifies which custom effect is being processed. You should " "use that for code flow control." msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:240 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:246 msgid "" "``relative_index`` tells you how far into a given custom effect block you " "are in as an index." msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:242 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:248 msgid "" "``absolute_index`` tells you how far into the entire text you are as an " "index." msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:243 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:249 msgid "" "``elapsed_time`` is the total amount of time the text effect has been " "running." msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:244 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:250 msgid "" "``visible`` will tell you whether the character is visible or not and will " "also allow you to hide a given portion of text." msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:246 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:252 msgid "" "``offset`` is an offset position relative to where the given character " "should render under normal circumstances." msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:248 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:254 msgid "``color`` is the color of a given character." msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:249 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:255 msgid "" "Finally, ``env`` is a :ref:`class_Dictionary` of parameters assigned to a " "given custom effect. You can use :ref:`get() ` " @@ -77292,7 +79616,7 @@ msgid "" "its ` `env`` Dictionary. See below for more usage examples." msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:255 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:261 msgid "" "The last thing to note about this function is that it is necessary to return " "a boolean ``true`` value to verify that the effect processed correctly. This " @@ -77301,23 +79625,23 @@ msgid "" "cropped up in their custom effect logic." msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:260 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:266 msgid "Here are some examples of custom effects:" msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:263 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:269 msgid "Ghost" msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:286 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:292 msgid "Pulse" msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:313 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:319 msgid "Matrix" msgstr "" -#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:348 +#: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:354 msgid "This will add a few new BBCode commands, which can be used like so:" msgstr "" @@ -82497,42 +84821,45 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:172 -msgid "Development in Visual Studio or other IDEs" +msgid "Development in Visual Studio" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:174 msgid "" -"For most projects, using only scripting is enough but when development in C+" -"+ is needed, for creating modules or extending the engine, working with an " -"IDE is usually desirable." +"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/development/compiling/compiling_for_windows.rst:178 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/development/compiling/compiling_for_windows.rst:181 +msgid "" "You can create a Visual Studio solution via SCons by running SCons with the " "``vsproj=yes`` parameter, like this::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:183 +#: ../../docs/development/compiling/compiling_for_windows.rst:186 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/development/compiling/compiling_for_windows.rst:186 -msgid "" -"If you need to edit the build commands, they are located in \"Godot\" " -"project settings, NMAKE sheet. SCons is called at the end of the commands. " -"If you make a mistake, copy the command from one of the other build " -"configurations (debug, release_debug, release) or architectures (Win32/x64); " -"they are equivalent." +#: ../../docs/development/compiling/compiling_for_windows.rst:189 +msgid "See :ref:`doc_configuring_an_ide_vs` for further details." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:193 +#: ../../docs/development/compiling/compiling_for_windows.rst:192 msgid "Cross-compiling for Windows from other operating systems" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:195 +#: ../../docs/development/compiling/compiling_for_windows.rst:194 msgid "" "If you are a Linux or macOS user, you need to install `MinGW-w64 `__, which typically comes in 32-bit and 64-bit " @@ -82540,98 +84867,98 @@ msgid "" "some known ones:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:201 +#: ../../docs/development/compiling/compiling_for_windows.rst:200 #: ../../docs/development/compiling/compiling_for_x11.rst:48 msgid "**Arch Linux**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:201 +#: ../../docs/development/compiling/compiling_for_windows.rst:200 msgid "Install `mingw-w64-gcc from the AUR`_." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:203 +#: ../../docs/development/compiling/compiling_for_windows.rst:202 #: ../../docs/development/compiling/compiling_for_x11.rst:53 msgid "**Debian** / **Ubuntu**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:207 +#: ../../docs/development/compiling/compiling_for_windows.rst:206 #: ../../docs/development/compiling/compiling_for_x11.rst:58 msgid "**Fedora**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:212 +#: ../../docs/development/compiling/compiling_for_windows.rst:211 msgid "**macOS**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:216 +#: ../../docs/development/compiling/compiling_for_windows.rst:215 #: ../../docs/development/compiling/compiling_for_x11.rst:75 msgid "**Mageia**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:224 +#: ../../docs/development/compiling/compiling_for_windows.rst:223 msgid "" "Before attempting the compilation, SCons will check for the following " "binaries in your ``PATH`` environment variable::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:230 +#: ../../docs/development/compiling/compiling_for_windows.rst:229 msgid "" "If the binaries are not located in the ``PATH`` (e.g. ``/usr/bin``), you can " "define the following environment variables to give a hint to the build " "system::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:237 +#: ../../docs/development/compiling/compiling_for_windows.rst:236 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/development/compiling/compiling_for_windows.rst:247 +#: ../../docs/development/compiling/compiling_for_windows.rst:246 msgid "" "Cross-compiling from some Ubuntu versions may lead to `this bug `_, due to a default configuration " "lacking support for POSIX threading." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:251 +#: ../../docs/development/compiling/compiling_for_windows.rst:250 msgid "" "You can change that configuration following those instructions, for 64-bit::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:259 +#: ../../docs/development/compiling/compiling_for_windows.rst:258 msgid "And for 32-bit::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:267 +#: ../../docs/development/compiling/compiling_for_windows.rst:266 msgid "Creating Windows export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:269 +#: ../../docs/development/compiling/compiling_for_windows.rst:268 msgid "" "Windows export templates are created by compiling Godot without the editor, " "with the following flags::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:277 +#: ../../docs/development/compiling/compiling_for_windows.rst:276 msgid "" "If you plan on replacing the standard export templates, copy these to the " "following location, replacing ```` with the version identifier " "(such as ``3.1.1.stable`` or ``3.2.dev``)::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:283 +#: ../../docs/development/compiling/compiling_for_windows.rst:282 msgid "With the following names::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:290 +#: ../../docs/development/compiling/compiling_for_windows.rst:289 msgid "" "However, if you are using custom modules or custom engine code, you may " "instead want to configure your binaries as custom export templates here:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:296 +#: ../../docs/development/compiling/compiling_for_windows.rst:295 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 " @@ -82914,7 +85241,7 @@ msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:249 msgid "" "Download the `latest portable Pyston release `__." +"pyston/releases/latest>`__." msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:250 @@ -84905,15 +87232,19 @@ msgstr "" #: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:8 msgid "" -"The export dialog gives you the option to encrypt your scripts with an " -"256bit AES key, when releasing your game. This will make sure your scripts " +"The export dialog gives you the option to encrypt your scripts with a 256-" +"bit AES key when releasing your project. This will make sure your scripts " "are not stored in plain text and can not easily be ripped by some script " -"kiddie. Of course the key needs to be stored in the binary, but if it's " -"compiled, optimized and without symbols, it would take some effort to find " -"it." +"kiddie." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:14 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:12 +msgid "" +"Of course, the key needs to be stored in the binary, but if it's compiled, " +"optimized and without symbols, it would take some effort to find it." +msgstr "" + +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:15 msgid "" "For this to work, you need to build the export templates from source, with " "that same key." @@ -84921,49 +87252,55 @@ msgstr "" #: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:20 msgid "" -"Generate a 256bit AES key in HEX. You can use the aes-256-cbc variant from " -"`this service `_." +"This will **not** work if you use official, precompiled export templates. It " +"is absolutely **required** to compile your own export templates to use PCK " +"encryption." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:23 -msgid "Alternatively, you can generate it yourself by using OpenSSL:" +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:27 +msgid "" +"Generate a 256-bit AES key in hexadecimal format. You can use the aes-256-" +"cbc variant from `this service `_." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:29 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:30 +msgid "" +"Alternatively, you can generate it yourself using `OpenSSL `__ command-line tools:" +msgstr "" + +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:37 msgid "The output in ``godot.gdkey`` should be similar to:" msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:35 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:44 msgid "" "You can generate the key without redirecting the output to a file, but that " "way you can minimize the risk of exposing the key." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:38 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:47 msgid "" "Set this key as environment variable in the console that you will use to " "compile Godot, like this:" msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:54 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:63 msgid "" "Compile Godot export templates and set them as custom export templates in " "the export preset options." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:57 -msgid "Set the encryption key in the ``Script`` tab of the export preset:" +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:66 +msgid "Set the encryption key in the **Script** tab of the export preset:" msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:61 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:70 msgid "Export the project. The game should run with encrypted scripts now." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:64 -msgid "Possible Errors" -msgstr "" - -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:66 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:75 msgid "" "If you get an error like below, it means the key wasn't properly included in " "your Godot build. Godot is encrypting the scripts during export, but can't " @@ -85084,7 +87421,7 @@ msgstr "" #: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:86 #: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:110 #: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:67 -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:169 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:172 #: ../../docs/development/cpp/configuring_an_ide/xcode.rst:109 msgid "" "If you run into any issues, ask for help in one of `Godot's community " @@ -85149,7 +87486,7 @@ msgstr "" #: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:69 #: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:73 #: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:30 -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:73 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:76 #: ../../docs/development/cpp/configuring_an_ide/xcode.rst:72 msgid "Debugging the project" msgstr "" @@ -85687,77 +88024,83 @@ msgstr "" #: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:12 msgid "" "Make sure the C/C++ extension is installed. You can find instructions in the " -"`official documentation `_." +"`official documentation `_. Alternatively, `clangd `_ can be used instead." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:14 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:16 +msgid "When using the clangd extension, run ``scons compiledb=yes``." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:17 msgid "" "From the Visual Studio Code's main screen open the Godot root folder with " "**File > Open Folder...**." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:16 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:19 msgid "" "Press :kbd:`Ctrl + Shift + P` to open the command prompt window and enter " "*Configure Task*." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:21 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:24 msgid "Select the **Create tasks.json file from template** option." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:26 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:29 msgid "Then select **Others**." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:31 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:34 msgid "" "Within the ``tasks.json`` file find the ``\"tasks\"`` array and add a new " "section to it:" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:67 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:70 msgid "An example of a filled out ``tasks.json``." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:69 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:72 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/development/cpp/configuring_an_ide/visual_studio_code.rst:75 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:78 msgid "" "To run and debug the project you need to create a new configuration in the " "``launch.json`` file." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:77 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:80 msgid "Press :kbd:`Ctrl + Shift + D` to open the Run panel." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:78 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:81 msgid "" "If ``launch.json`` file is missing you will be prompted to create a new one." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:83 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:86 msgid "" "Select **C++ (GDB/LLDB)**. There may be another platform specific option " "here. If selected, adjust the configuration example provided accordingly." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:85 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:88 msgid "" "Within the ``launch.json`` file find the ``\"configurations\"`` array and " "add a new section to it:" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:153 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:156 msgid "An example of a filled out ``launch.json``." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:158 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:161 msgid "" "Due to sporadic performance issues, it is recommended to use LLDB over GDB " "on Unix-based systems. Make sure that the `CodeLLDB extension /" "`." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:162 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:165 msgid "**Issues URL**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:160 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:163 msgid "" "The URL to your asset's issue tracker. Again, this will differ from " "repository host to repository host, but will likely look similar to `https://" @@ -95313,33 +97664,33 @@ msgid "" "use your provider's issue tracker, and it's part of the same repository." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:166 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:169 msgid "**Download Commit**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:165 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:168 msgid "" "The commit of the asset. For example, " "`b1d3172f89b86e52465a74f63a74ac84c491d3e1`. The site computes the actual " "download URL from this." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:170 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:173 msgid "**Icon URL**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:169 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:172 msgid "" "The URL to your asset's icon (which will be used as a thumbnail in the " "AssetLib search results and on the asset's page). Should be an image in " "either the PNG or JPG format." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:175 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:178 msgid "**License**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:173 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:176 msgid "" "The license under which you are distributing the asset. The list includes a " "variety of free and open-source software licenses, such as GPL (v2 and v3), " @@ -95347,11 +97698,11 @@ msgid "" "opensource.org>`_ for a detailed description of each of the listed licenses." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:181 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:184 msgid "**Description**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:178 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:181 msgid "" "Finally, you can use the Description field for a textual overview of your " "asset, its features and behavior, a changelog, et cetera. In the future, " @@ -95359,41 +97710,41 @@ msgid "" "is plain text." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:183 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:186 msgid "" "You may also include up to three video and/or image previews, which will be " "shown at the bottom of the asset page. Use the \"Enable\" checkbox on each " "of the preview submission boxes to enable them." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:187 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:190 msgid "**Type**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:188 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:191 msgid "Either an image, or a video." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:189 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:192 msgid "**Image/YouTube URL**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:190 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:193 msgid "Either a link to the image, or to a video, hosted on YouTube." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:194 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:197 msgid "**Thumbnail URL**:" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:192 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:195 msgid "" "A URL to an image that will be used as a thumbnail for the preview. This " "option will be removed eventually, and thumbnails will be automatically " "computed instead." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:196 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:199 msgid "" "Once you are done, press \"Submit\". Your asset will be entered into the " "review queue. You can check all assets currently pending a review `here " @@ -95402,14 +97753,14 @@ msgid "" "be accepted (or rejected), so please be patient!" msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:203 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:206 msgid "" "You may have some luck accelerating the approval process by messaging the " "moderators and AssetLib reviewers on the `Godot Contributors Chat `_, or the official Discord server." msgstr "" -#: ../../docs/community/asset_library/submitting_to_assetlib.rst:207 +#: ../../docs/community/asset_library/submitting_to_assetlib.rst:210 msgid "" "You will be informed when your asset is reviewed. If it was rejected, you " "will be told why that may have been, and you will be able to submit it again "