Sync Sphinx and Weblate templates with current docs (3.4+ content reorganization)

This commit is contained in:
Rémi Verschelde
2021-12-16 15:55:56 +01:00
parent b1873567bc
commit 6e89959a13
402 changed files with 77759 additions and 86313 deletions

2
docs

Submodule docs updated: 9060c28080...29a13c542c

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,181 +16,181 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/tutorials/legal/complying_with_licenses.rst:4
#: ../../docs/about/complying_with_licenses.rst:4
msgid "Complying with licenses"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:7
#: ../../docs/about/complying_with_licenses.rst:7
msgid "What are licenses?"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:9
#: ../../docs/about/complying_with_licenses.rst:9
msgid "Godot is created and distributed under the `MIT License <https://opensource.org/licenses/MIT>`_. It doesn't have a sole owner either, as every contributor that submits code to the project does it under this same license and keeps ownership of the contribution."
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:14
#: ../../docs/about/complying_with_licenses.rst:14
msgid "The license is the legal requirement for you (or your company) to use and distribute the software (and derivative projects, including games made with it). Your game or project can have a different license, but it still needs to comply with the original one."
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:20
#: ../../docs/about/complying_with_licenses.rst:20
msgid "Requirements"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:22
#: ../../docs/about/complying_with_licenses.rst:22
msgid "In the case of the MIT license, the only requirement is to include the license text somewhere in your game or derivative project."
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:25
#: ../../docs/about/complying_with_licenses.rst:25
msgid "This text reads as follows:"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:27
#: ../../docs/about/complying_with_licenses.rst:27
msgid "This game uses Godot Engine, available under the following license:"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:29
#: ../../docs/about/complying_with_licenses.rst:29
msgid "Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. Copyright (c) 2014-2021 Godot Engine contributors."
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:32
#: ../../docs/tutorials/legal/complying_with_licenses.rst:122
#: ../../docs/about/complying_with_licenses.rst:32
#: ../../docs/about/complying_with_licenses.rst:122
msgid "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:34
#: ../../docs/tutorials/legal/complying_with_licenses.rst:124
#: ../../docs/about/complying_with_licenses.rst:34
#: ../../docs/about/complying_with_licenses.rst:124
msgid "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software."
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:36
#: ../../docs/tutorials/legal/complying_with_licenses.rst:126
#: ../../docs/about/complying_with_licenses.rst:36
#: ../../docs/about/complying_with_licenses.rst:126
msgid "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:40
#: ../../docs/about/complying_with_licenses.rst:40
msgid "Your games do not need to be under the same license. You are free to release your Godot projects under any license and to create commercial games with the engine."
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:45
#: ../../docs/about/complying_with_licenses.rst:45
msgid "Inclusion"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:47
#: ../../docs/about/complying_with_licenses.rst:47
msgid "The license does not specify how it has to be included, so anything is valid as long as it can be displayed under some condition. These are the most common approaches (only need to implement one of them, not all)."
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:52
#: ../../docs/about/complying_with_licenses.rst:52
msgid "Credits screen"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:54
#: ../../docs/about/complying_with_licenses.rst:54
msgid "Include the above license text somewhere in the credits screen. It can be at the bottom after showing the rest of the credits. Most large studios use this approach with open source licenses."
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:59
#: ../../docs/about/complying_with_licenses.rst:59
msgid "Licenses screen"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:61
#: ../../docs/about/complying_with_licenses.rst:61
msgid "Some games have a special menu (often in the settings) to display licenses."
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:64
#: ../../docs/about/complying_with_licenses.rst:64
msgid "Output log"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:66
#: ../../docs/about/complying_with_licenses.rst:66
msgid "Just printing the licensing text using the :ref:`print() <class_@GDScript_method_print>` function may be enough on platforms where a global output log is readable. This is the case on desktop platforms, Android and HTML5 (but not iOS and UWP)."
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:71
#: ../../docs/about/complying_with_licenses.rst:71
msgid "Accompanying file"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:73
#: ../../docs/about/complying_with_licenses.rst:73
msgid "If the game is distributed on desktop platforms, a file containing the license can be added to the software that is installed to the user PC."
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:77
#: ../../docs/about/complying_with_licenses.rst:77
msgid "Printed manual"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:79
#: ../../docs/about/complying_with_licenses.rst:79
msgid "If the game includes printed manuals, license text can be included there."
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:82
#: ../../docs/about/complying_with_licenses.rst:82
msgid "Link to the license"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:84
#: ../../docs/about/complying_with_licenses.rst:84
msgid "The Godot Engine developers consider that a link to godotengine.org/license in your game documentation or credits would be an acceptable way to satisfy the license terms."
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:89
#: ../../docs/about/complying_with_licenses.rst:89
msgid "Third-party licenses"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:91
#: ../../docs/about/complying_with_licenses.rst:91
msgid "Godot itself contains software written by `third parties <https://github.com/godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require license inclusion, but some do. Make sure to do it if these are compiled in your Godot export template. If you're using the official export templates, all libraries are enabled. This means you need to provide attribution for all the libraries listed below."
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:98
#: ../../docs/about/complying_with_licenses.rst:98
msgid "Here's a list of libraries requiring attribution:"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:101
#: ../../docs/about/complying_with_licenses.rst:101
msgid "FreeType"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:103
#: ../../docs/about/complying_with_licenses.rst:103
msgid "Godot uses `FreeType <https://www.freetype.org/>`_ to render fonts. Its license requires attribution, so the following text must be included together with the Godot license:"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:107
#: ../../docs/about/complying_with_licenses.rst:107
msgid "Portions of this software are copyright © <year> The FreeType Project (www.freetype.org). All rights reserved."
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:109
#: ../../docs/about/complying_with_licenses.rst:109
msgid "Note that <year> should correspond to the value from the FreeType version used in your build. This information can be found in the editor by opening the **Help > About** dialog and going to the **Third-party Licenses** tab."
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:114
#: ../../docs/about/complying_with_licenses.rst:114
msgid "ENet"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:116
#: ../../docs/about/complying_with_licenses.rst:116
msgid "Godot includes the `ENet <http://enet.bespin.org/>`_ library to handle high-level multiplayer. ENet has similar licensing terms as Godot:"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:120
#: ../../docs/about/complying_with_licenses.rst:120
msgid "Copyright (c) 2002-2020 Lee Salzman"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:129
#: ../../docs/about/complying_with_licenses.rst:129
msgid "MBedTLS"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:131
#: ../../docs/about/complying_with_licenses.rst:131
msgid "If the project is done with Godot 3.1 or above and it utilizes SSL (usually through HTTP requests), the `MBedTLS <https://tls.mbed.org>`_ Apache license needs to be complied by including the following text:"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:135
#: ../../docs/about/complying_with_licenses.rst:135
msgid "Copyright The Mbed TLS Contributors"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:137
#: ../../docs/about/complying_with_licenses.rst:137
msgid "Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:141
#: ../../docs/about/complying_with_licenses.rst:141
msgid "http://www.apache.org/licenses/LICENSE-2.0"
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:143
#: ../../docs/about/complying_with_licenses.rst:143
msgid "Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License."
msgstr ""
#: ../../docs/tutorials/legal/complying_with_licenses.rst:149
#: ../../docs/about/complying_with_licenses.rst:149
msgid "Keep in mind that Godot 2.x and 3.0 use `OpenSSL <https://www.openssl.org>`_ instead."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -100,7 +100,8 @@ msgid "Your First Shader Series:"
msgstr ""
#: ../../docs/about/docs_changelog.rst:53
msgid ":ref:`doc_what_are_shaders`"
#: ../../docs/about/docs_changelog.rst:177
msgid ":ref:`doc_introduction_to_shaders`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:54
@@ -140,7 +141,7 @@ msgid ":ref:`doc_vr_starter_tutorial_part_two`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:71
#: ../../docs/about/docs_changelog.rst:185
#: ../../docs/about/docs_changelog.rst:184
msgid "Plugins"
msgstr ""
@@ -157,7 +158,7 @@ msgid ":ref:`doc_visual_shader_plugins`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:78
#: ../../docs/about/docs_changelog.rst:196
#: ../../docs/about/docs_changelog.rst:195
msgid "Multi-threading"
msgstr ""
@@ -166,7 +167,7 @@ msgid ":ref:`doc_using_multiple_threads`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:83
#: ../../docs/about/docs_changelog.rst:201
#: ../../docs/about/docs_changelog.rst:200
msgid "Creating content"
msgstr ""
@@ -227,7 +228,7 @@ msgid ":ref:`doc_signals`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:110
msgid ":ref:`doc_exporting`"
msgid ":ref:`doc_exporting_basics`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:113
@@ -351,101 +352,93 @@ msgid ":ref:`doc_custom_postprocessing`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:172
msgid ":ref:`doc_intro_to_shaders_water_workshop`"
msgid ":ref:`doc_converting_glsl_to_godot_shaders`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:173
msgid ":ref:`doc_migrating_to_godot_shader_language`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:174
msgid ":ref:`doc_advanced_postprocessing`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:176
#: ../../docs/about/docs_changelog.rst:175
msgid "Shading Reference:"
msgstr ""
#: ../../docs/about/docs_changelog.rst:178
msgid ":ref:`doc_shaders`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:179
msgid ":ref:`doc_shading_language`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:180
#: ../../docs/about/docs_changelog.rst:179
msgid ":ref:`doc_spatial_shader`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:181
#: ../../docs/about/docs_changelog.rst:180
msgid ":ref:`doc_canvas_item_shader`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:182
#: ../../docs/about/docs_changelog.rst:181
msgid ":ref:`doc_particle_shader`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:187
#: ../../docs/about/docs_changelog.rst:186
msgid ":ref:`doc_making_main_screen_plugins`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:188
#: ../../docs/about/docs_changelog.rst:187
msgid ":ref:`doc_spatial_gizmo_plugins`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:191
#: ../../docs/about/docs_changelog.rst:190
msgid "Platform-specific"
msgstr ""
#: ../../docs/about/docs_changelog.rst:193
#: ../../docs/about/docs_changelog.rst:192
msgid ":ref:`doc_customizing_html5_shell`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:198
#: ../../docs/about/docs_changelog.rst:197
msgid ":ref:`doc_thread_safe_apis`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:203
#: ../../docs/about/docs_changelog.rst:202
msgid ":ref:`doc_making_trees`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:206
#: ../../docs/about/docs_changelog.rst:205
msgid "Miscellaneous"
msgstr ""
#: ../../docs/about/docs_changelog.rst:208
#: ../../docs/about/docs_changelog.rst:207
msgid ":ref:`doc_jitter_stutter`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:209
#: ../../docs/about/docs_changelog.rst:208
msgid ":ref:`doc_running_code_in_the_editor`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:210
#: ../../docs/about/docs_changelog.rst:209
msgid ":ref:`doc_change_scenes_manually`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:211
#: ../../docs/about/docs_changelog.rst:210
msgid ":ref:`doc_gles2_gles3_differences`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:214
#: ../../docs/about/docs_changelog.rst:213
msgid "Compiling"
msgstr ""
#: ../../docs/about/docs_changelog.rst:216
#: ../../docs/about/docs_changelog.rst:215
msgid ":ref:`doc_optimizing_for_size`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:217
#: ../../docs/about/docs_changelog.rst:216
msgid ":ref:`doc_compiling_with_script_encryption_key`"
msgstr ""
#: ../../docs/about/docs_changelog.rst:220
#: ../../docs/about/docs_changelog.rst:219
msgid "Engine development"
msgstr ""
#: ../../docs/about/docs_changelog.rst:222
#: ../../docs/about/docs_changelog.rst:221
msgid ":ref:`doc_binding_to_external_libraries`"
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -458,86 +458,86 @@ msgstr ""
msgid "This custom UI toolkit :ref:`can't be used as a library <doc_faq_use_godot_as_library>`, but you can still :ref:`use Godot to create non-game applications by using the editor <doc_faq_non_game_applications>`."
msgstr ""
#: ../../docs/about/faq.rst:413
#: ../../docs/about/faq.rst:415
msgid "Why does Godot not use STL (Standard Template Library)?"
msgstr ""
#: ../../docs/about/faq.rst:415
#: ../../docs/about/faq.rst:417
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:419
#: ../../docs/about/faq.rst:421
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:420
#: ../../docs/about/faq.rst:422
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:421
#: ../../docs/about/faq.rst:423
msgid "Our containers have memory tracking built-in, which helps better track memory usage."
msgstr ""
#: ../../docs/about/faq.rst:422
#: ../../docs/about/faq.rst:424
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:423
#: ../../docs/about/faq.rst:425
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:426
#: ../../docs/about/faq.rst:428
msgid "Why does Godot not use exceptions?"
msgstr ""
#: ../../docs/about/faq.rst:428
#: ../../docs/about/faq.rst:430
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:433
#: ../../docs/about/faq.rst:435
msgid "Additionally, exceptions significantly increase binary size for the executable."
msgstr ""
#: ../../docs/about/faq.rst:437
#: ../../docs/about/faq.rst:439
msgid "Why does Godot not enforce RTTI?"
msgstr ""
#: ../../docs/about/faq.rst:439
#: ../../docs/about/faq.rst:441
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:444
#: ../../docs/about/faq.rst:446
msgid "Why does Godot not force users to implement DoD (Data oriented Design)?"
msgstr ""
#: ../../docs/about/faq.rst:446
#: ../../docs/about/faq.rst:448
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:450
#: ../../docs/about/faq.rst:452
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:457
#: ../../docs/about/faq.rst:459
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:460
#: ../../docs/about/faq.rst:462
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:465
#: ../../docs/about/faq.rst:467
msgid "How can I support Godot development or contribute?"
msgstr ""
#: ../../docs/about/faq.rst:467
#: ../../docs/about/faq.rst:469
msgid "See :ref:`doc_ways_to_contribute`."
msgstr ""
#: ../../docs/about/faq.rst:470
#: ../../docs/about/faq.rst:472
msgid "Who is working on Godot? How can I contact you?"
msgstr ""
#: ../../docs/about/faq.rst:472
#: ../../docs/about/faq.rst:474
msgid "See the corresponding page on the `Godot website <https://godotengine.org/contact>`_."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,6 +16,6 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/tutorials/assetlib/index.rst:2
#: ../../docs/community/asset_library/index.rst:2
msgid "Asset Library"
msgstr ""

View File

@@ -0,0 +1,261 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:4
msgid "Submitting to the Asset Library"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:7
msgid "Introduction"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:9
msgid "This tutorial aims to serve as a guide on how you can submit your own assets to the Godot Asset Library and share them with the Godot community."
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:12
msgid "As mentioned in the :ref:`doc_using_assetlib` document, in order to be able to submit assets to the AssetLib, you need to have a registered account, and be logged in."
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:17
msgid "Submission guidelines"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:19
msgid "Before submitting your asset, please ensure it follows all of the requirements, and also consider following the recommendations."
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:23
msgid "Requirements"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:25
msgid "Generally speaking, most assets people submit to the asset library are accepted. However, in order for your asset to be accepted, there are a few requirements your asset needs to meet to be approved."
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:29
msgid "The asset must **work**. If the asset doesn't run or otherwise doesn't work in the specified Godot version, then it will be rejected."
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:32
msgid "The asset must have a proper **.gitignore** file. It's important to keep redundant data out of the repository. `Here's a template. <https://raw.githubusercontent.com/aaronfranke/gitignore/godot/Godot.gitignore>`_"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:36
msgid "No **submodules**, or any submodules must be non-essential. GitHub does not include submodules in the downloaded ZIP file, so if the asset needs the contents of the submodule, your asset won't work."
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:40
msgid "The **license** needs to be correct. The license listed on the asset library must match the license in the repository. The repo MUST have a license file, called either \"LICENSE\" or \"LICENSE.md\". This file must contain the license text itself and a copyright statement that includes the year(s) and copyright holder."
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:46
msgid "Use proper **English** for the name and description of your asset. This includes using correct capitalization, and using full sentences in the description. You can also include other languages, but there should at least be an English version."
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:51
msgid "The icon link must be a **direct link**. For icons hosted on GitHub, the link must start with \"raw.githubusercontent.com\", not \"github.com\"."
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:55
msgid "Recommendations"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:57
msgid "These things are not required for your asset to be approved, but if you follow these recommendations, you can help make the asset library a better place for all users."
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:61
msgid "Fix or suppress all script **warnings**. The warning system is there to help identify issues with your code, but people using your asset don't need to see them."
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:65
msgid "Make your code conform to the official **style guides**. Having a consistent style helps other people read your code, and it also helps if other people wish to contribute to your asset. See: the :ref:`doc_gdscript_styleguide` or the :ref:`doc_c_sharp_styleguide`."
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:70
msgid "If you have screenshots in your repo, place them in their own subfolder and add an empty **.gdignore** file in the same folder (note: **gd**, not **git**). This prevents Godot from importing your screenshots. On Windows, open a command prompt in the project folder and run ``type nul > .gdignore`` to create a file whose name starts with a period."
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:76
msgid "If your asset is a library for working with other files, consider including **example files** in the asset."
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:79
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:"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:101
msgid "Other types of assets may require a different configuration (e.g. a project template requires **project.godot**)."
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:104
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:109
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:112
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:117
msgid "Submitting"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:119
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:122
msgid "|image0|"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:124
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:129
msgid "**Asset Name**:"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:129
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:135
msgid "**Category**:"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:132
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:141
msgid "**Godot version**:"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:138
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:148
msgid "**Version**:"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:144
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 <https://semver.org>`_ 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:153
msgid "**Repository host**:"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:151
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:156
msgid "**Repository URL**:"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:156
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/<user>/<project>`."
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:161
msgid "**Issues URL**:"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:159
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/<user>/<project>/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:165
msgid "**Download Commit**:"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:164
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:169
msgid "**Icon URL**:"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:168
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:174
msgid "**License**:"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:172
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 <https://opensource.org>`_ for a detailed description of each of the listed licenses."
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:180
msgid "**Description**:"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:177
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:182
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:186
msgid "**Type**:"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:187
msgid "Either an image, or a video."
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:188
msgid "**Image/YouTube URL**:"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:189
msgid "Either a link to the image, or to a video, hosted on YouTube."
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:193
msgid "**Thumbnail URL**:"
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:191
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:195
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 <https://godotengine.org/asset-library/asset/edit?&asset=-1>`_ . 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:202
msgid "You may have some luck accelerating the approval process by messaging the moderators and AssetLib reviewers on the `Contributors Chat <https://chat.godotengine.org/>`_, or the official Discord server."
msgstr ""
#: ../../docs/community/asset_library/submitting_to_assetlib.rst:206
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 ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,238 +16,238 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:4
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:4
msgid "Submitting to the Asset Library"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:7
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:7
msgid "Introduction"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:9
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:9
msgid "This tutorial aims to serve as a guide on how you can submit your own assets to the Godot Asset Library and share them with the Godot community."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:12
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:12
msgid "As mentioned in the :ref:`doc_using_assetlib` document, in order to be able to submit assets to the AssetLib, you need to have a registered account, and be logged in."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:17
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:17
msgid "Submission guidelines"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:19
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:19
msgid "Before submitting your asset, please ensure it follows all of the requirements, and also consider following the recommendations."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:23
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:23
msgid "Requirements"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:25
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:25
msgid "Generally speaking, most assets people submit to the asset library are accepted. However, in order for your asset to be accepted, there are a few requirements your asset needs to meet to be approved."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:29
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:29
msgid "The asset must **work**. If the asset doesn't run or otherwise doesn't work in the specified Godot version, then it will be rejected."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:32
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:32
msgid "The asset must have a proper **.gitignore** file. It's important to keep redundant data out of the repository. `Here's a template. <https://raw.githubusercontent.com/aaronfranke/gitignore/godot/Godot.gitignore>`_"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:36
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:36
msgid "No **submodules**, or any submodules must be non-essential. GitHub does not include submodules in the downloaded ZIP file, so if the asset needs the contents of the submodule, your asset won't work."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:40
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:40
msgid "The **license** needs to be correct. The license listed on the asset library must match the license in the repository. The repo MUST have a license file, called either \"LICENSE\" or \"LICENSE.md\". This file must contain the license text itself and a copyright statement that includes the year(s) and copyright holder."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:46
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:46
msgid "Use proper **English** for the name and description of your asset. This includes using correct capitalization, and using full sentences in the description. You can also include other languages, but there should at least be an English version."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:51
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:51
msgid "The icon link must be a **direct link**. For icons hosted on GitHub, the link must start with \"raw.githubusercontent.com\", not \"github.com\"."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:55
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:55
msgid "Recommendations"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:57
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:57
msgid "These things are not required for your asset to be approved, but if you follow these recommendations, you can help make the asset library a better place for all users."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:61
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:61
msgid "Fix or suppress all script **warnings**. The warning system is there to help identify issues with your code, but people using your asset don't need to see them."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:65
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:65
msgid "Make your code conform to the official **style guides**. Having a consistent style helps other people read your code, and it also helps if other people wish to contribute to your asset. See: the :ref:`doc_gdscript_styleguide` or the :ref:`doc_c_sharp_styleguide`."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:70
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:70
msgid "If you have screenshots in your repo, place them in their own subfolder and add an empty **.gdignore** file in the same folder (note: **gd**, not **git**). This prevents Godot from importing your screenshots. On Windows, open a command prompt in the project folder and run ``type nul > .gdignore`` to create a file whose name starts with a period."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:76
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:76
msgid "If your asset is a library for working with other files, consider including **example files** in the asset."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:79
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:79
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:"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:101
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:101
msgid "Other types of assets may require a different configuration (e.g. a project template requires **project.godot**)."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:104
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:104
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/tutorials/assetlib/uploading_to_assetlib.rst:109
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:109
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/tutorials/assetlib/uploading_to_assetlib.rst:112
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:112
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/tutorials/assetlib/uploading_to_assetlib.rst:117
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:117
msgid "Submitting"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:119
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:119
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/tutorials/assetlib/uploading_to_assetlib.rst:122
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:122
msgid "|image0|"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:124
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:124
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/tutorials/assetlib/uploading_to_assetlib.rst:129
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:129
msgid "**Asset Name**:"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:129
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:129
msgid "The name of your asset. Should be a unique, descriptive title of what your asset is."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:135
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:135
msgid "**Category**:"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:132
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:132
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/tutorials/assetlib/uploading_to_assetlib.rst:141
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:141
msgid "**Godot version**:"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:138
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:138
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/tutorials/assetlib/uploading_to_assetlib.rst:148
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:148
msgid "**Version**:"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:144
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:144
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 <https://semver.org>`_ 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/tutorials/assetlib/uploading_to_assetlib.rst:153
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:153
msgid "**Repository host**:"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:151
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:151
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/tutorials/assetlib/uploading_to_assetlib.rst:156
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:156
msgid "**Repository URL**:"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:156
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:156
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/<user>/<project>`."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:161
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:161
msgid "**Issues URL**:"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:159
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:159
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/<user>/<project>/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/tutorials/assetlib/uploading_to_assetlib.rst:165
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:165
msgid "**Download Commit**:"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:164
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:164
msgid "The commit of the asset. For example, `b1d3172f89b86e52465a74f63a74ac84c491d3e1`. The site computes the actual download URL from this."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:169
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:169
msgid "**Icon URL**:"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:168
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:168
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/tutorials/assetlib/uploading_to_assetlib.rst:174
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:174
msgid "**License**:"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:172
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:172
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 <https://opensource.org>`_ for a detailed description of each of the listed licenses."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:180
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:180
msgid "**Description**:"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:177
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:177
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/tutorials/assetlib/uploading_to_assetlib.rst:182
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:182
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/tutorials/assetlib/uploading_to_assetlib.rst:186
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:186
msgid "**Type**:"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:187
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:187
msgid "Either an image, or a video."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:188
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:188
msgid "**Image/YouTube URL**:"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:189
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:189
msgid "Either a link to the image, or to a video, hosted on YouTube."
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:193
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:193
msgid "**Thumbnail URL**:"
msgstr ""
#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:191
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:191
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/tutorials/assetlib/uploading_to_assetlib.rst:195
#: ../../docs/community/asset_library/uploading_to_assetlib.rst:195
msgid "Once you are done, hit Submit. Your asset will be entered into the pending queue, which you can visit on the AssetLib `here <https://godotengine.org/asset-library/asset/edit?&asset=-1>`_ . The approval process is manual and may take up to a few days for your addon to be accepted (or rejected), so please be patient! 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. You may have some luck accelerating the approval process by messaging the moderators/assetlib reviewers on IRC (the ``#godotengine-atelier`` channel on Freenode), or the official Discord server."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,262 +16,262 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/tutorials/assetlib/using_assetlib.rst:4
#: ../../docs/community/asset_library/using_assetlib.rst:4
msgid "Using the Asset Library"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:7
#: ../../docs/community/asset_library/using_assetlib.rst:7
msgid "On the website"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:10
#: ../../docs/community/asset_library/using_assetlib.rst:10
msgid "Overview"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:12
#: ../../docs/community/asset_library/using_assetlib.rst:12
msgid "As mentioned before, you can access the web frontend of the Asset Library on `Godot's official website <https://godotengine.org/asset-library/asset>`_. This is what it looks like when you first visit it:"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:16
#: ../../docs/community/asset_library/using_assetlib.rst:16
msgid "|image0|"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:18
#: ../../docs/community/asset_library/using_assetlib.rst:18
msgid "At the top, you see the **header**, which takes you to various other parts of the AssetLib - at the moment, it's empty, as we are not logged in."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:22
#: ../../docs/community/asset_library/using_assetlib.rst:22
msgid "Searching"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:24
#: ../../docs/community/asset_library/using_assetlib.rst:24
msgid "In the center is the **search bar + settings** section, and the **assets** section below it - this lets you filter out certain kinds of assets based on a host of criteria. These include the asset **category** (such as 2D tools, scripts and demos), **engine version** they are intended for, **sorting order** (by update date, by name, etc.) and **support level**."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:30
#: ../../docs/community/asset_library/using_assetlib.rst:30
msgid "While most other filter settings should be fairly self-explanatory, it's worth going over what \"support level\" means in the Asset Library. Currently there are three support levels, and each asset can belong to only one."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:34
#: ../../docs/community/asset_library/using_assetlib.rst:34
msgid "**Official** assets are created and maintained by the official Godot Engine developers. Currently, these include the official engine demos, which showcase how various areas of the engine work."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:38
#: ../../docs/community/asset_library/using_assetlib.rst:38
msgid "**Community** assets are submitted and maintained by the members of the Godot community."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:41
#: ../../docs/community/asset_library/using_assetlib.rst:41
msgid "**Testing** assets are works-in-progress, and may contain bugs and usability issues. They are not recommended for use in serious projects, but you are encouraged to download, test them, and submit issues to the original authors."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:45
#: ../../docs/community/asset_library/using_assetlib.rst:45
msgid "You can mix and match any of the search filters and criteria, and upon clicking the Search button, receive the list of all assets in the Library that match them."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:48
#: ../../docs/community/asset_library/using_assetlib.rst:48
msgid "|image1|"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:50
#: ../../docs/community/asset_library/using_assetlib.rst:50
msgid "Note that the search results are not updated in real-time, so you will have to re-submit the search query each time you change the query settings."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:54
#: ../../docs/community/asset_library/using_assetlib.rst:54
msgid "Breakdown of an asset"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:56
#: ../../docs/community/asset_library/using_assetlib.rst:56
msgid "Now let's take a look at what an asset's page looks like and what it contains."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:58
#: ../../docs/community/asset_library/using_assetlib.rst:58
msgid "|image2|"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:60
#: ../../docs/community/asset_library/using_assetlib.rst:60
msgid "Asset's thumbnail/icon."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:61
#: ../../docs/community/asset_library/using_assetlib.rst:61
msgid "Asset's name."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:62
#: ../../docs/community/asset_library/using_assetlib.rst:62
msgid "Current version number of the asset."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:63
#: ../../docs/community/asset_library/using_assetlib.rst:63
msgid "Asset's category, Godot version, and support status."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:64
#: ../../docs/community/asset_library/using_assetlib.rst:64
msgid "Asset's original author/submitter."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:65
#: ../../docs/community/asset_library/using_assetlib.rst:65
msgid "The license the asset is distributed under."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:66
#: ../../docs/community/asset_library/using_assetlib.rst:66
msgid "The date of the asset's latest edit/update."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:67
#: ../../docs/community/asset_library/using_assetlib.rst:67
msgid "A textual description of the asset."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:68
#: ../../docs/community/asset_library/using_assetlib.rst:68
msgid "Links related to the asset (download link, file list, issue tracker)."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:69
#: ../../docs/community/asset_library/using_assetlib.rst:69
msgid "Images and videos showcasing the asset."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:72
#: ../../docs/community/asset_library/using_assetlib.rst:72
msgid "Registering and logging in"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:74
#: ../../docs/community/asset_library/using_assetlib.rst:74
msgid "In order to upload assets to the AssetLib, you need to be logged in, and to do that, you need a registered user account. In the future, this may also give you access to other features, such as commenting on or rating the existing assets. You do *not* need to be logged in to browse and download the assets."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:79
#: ../../docs/community/asset_library/using_assetlib.rst:79
msgid "The login/registration page can be accessed from the AssetLib header."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:81
#: ../../docs/community/asset_library/using_assetlib.rst:81
msgid "|image3|"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:83
#: ../../docs/community/asset_library/using_assetlib.rst:83
msgid "From here, you can register your account, which requires a valid email address, a username, and a (preferably strong) password."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:86
#: ../../docs/community/asset_library/using_assetlib.rst:86
msgid "|image4|"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:88
#: ../../docs/community/asset_library/using_assetlib.rst:88
msgid "Then, you can use your username and password to log in."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:90
#: ../../docs/community/asset_library/using_assetlib.rst:90
msgid "|image5|"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:92
#: ../../docs/community/asset_library/using_assetlib.rst:92
msgid "This will change the look of the AssetLib header. Now you get access to a handful of new functions:"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:95
#: ../../docs/community/asset_library/using_assetlib.rst:95
msgid "The feed, which shows a list of status updates on your submitted assets (and possibly more in the future)."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:96
#: ../../docs/community/asset_library/using_assetlib.rst:96
msgid "A list of your uploaded assets."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:97
#: ../../docs/community/asset_library/using_assetlib.rst:97
msgid "The ability to submit new assets."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:99
#: ../../docs/community/asset_library/using_assetlib.rst:99
msgid "|image6|"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:101
msgid "You can learn how to submit assets to the Library, and what the asset submission guidelines are, in the next part of this tutorial, :ref:`doc_uploading_to_assetlib`."
#: ../../docs/community/asset_library/using_assetlib.rst:101
msgid "You can learn how to submit assets to the Library, and what the asset submission guidelines are, in the next part of this tutorial, :ref:`doc_submitting_to_assetlib`."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:105
#: ../../docs/community/asset_library/using_assetlib.rst:105
msgid "In the editor"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:109
#: ../../docs/community/asset_library/using_assetlib.rst:109
msgid "The editor will display different categories of assets depending on whether you're browsing the project manager's **Templates** tab or the editor's **AssetLib** tab."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:113
#: ../../docs/community/asset_library/using_assetlib.rst:113
msgid "The project manager's **Templates** tab will only display assets that are standalone projects by themselves. This is denoted on the asset library with the *Templates*, *Demos* and *Projects* categories."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:117
#: ../../docs/community/asset_library/using_assetlib.rst:117
msgid "The editor's **AssetLib** tab will only display assets that are *not* standalone projects by themselves. In other words, it will display assets from all categories except *Templates*, *Demos* and *Projects*."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:121
#: ../../docs/community/asset_library/using_assetlib.rst:121
msgid "You can also access the AssetLib directly from Godot:"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:123
#: ../../docs/community/asset_library/using_assetlib.rst:123
msgid "|image7|"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:125
#: ../../docs/community/asset_library/using_assetlib.rst:125
msgid "|image14|"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:127
#: ../../docs/community/asset_library/using_assetlib.rst:127
msgid "Click on it, and Godot will fetch info about the assets from the AssetLib. Once it's finished, you will see a window similar to what the AssetLib website looks like, with some differences:"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:131
#: ../../docs/community/asset_library/using_assetlib.rst:131
msgid "|image8|"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:133
#: ../../docs/community/asset_library/using_assetlib.rst:133
msgid "Similarly to the web version of the AssetLib, here you can search for assets by category, name, and sort them by factors such as name or edit date."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:136
#: ../../docs/community/asset_library/using_assetlib.rst:136
msgid "Notably, you can only fetch assets for the current version of Godot you are running. Projects, Demos and Templates can be downloaded from the Project Manager view of the AssetLib. Addons (tools, scripts, materials etc.) can be downloaded from the in-project AssetLib and added to the current project. In addition, unlike when using the web frontend, the search results are updated in real-time (you do not have to press Search after every change to your search query for the changes to take place)."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:144
#: ../../docs/community/asset_library/using_assetlib.rst:144
msgid "In the future, you will be able to choose a different AssetLib provider to fetch assets from (using the Site dropdown menu), however currently only the official `Godot website <https://godotengine.org>`_ version of the AssetLib is supported, as well as the version that may be running on your local machine's web server (the localhost option)."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:150
#: ../../docs/community/asset_library/using_assetlib.rst:150
msgid "When you click on an asset, you will see more information about it."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:152
#: ../../docs/community/asset_library/using_assetlib.rst:152
msgid "|image9|"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:154
#: ../../docs/community/asset_library/using_assetlib.rst:154
msgid "If you click on the Install button, Godot will fetch an archive of the asset, and will track download progress of it at the bottom of the editor window. If the download fails, you can retry it using the Retry button."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:158
#: ../../docs/community/asset_library/using_assetlib.rst:158
msgid "|image10|"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:160
#: ../../docs/community/asset_library/using_assetlib.rst:160
msgid "When it finishes, you can proceed to install it using the Install button. This will bring up the Package Installer window."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:163
#: ../../docs/community/asset_library/using_assetlib.rst:163
msgid "|image11|"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:165
#: ../../docs/community/asset_library/using_assetlib.rst:165
msgid "Here you can see a list of all the files that will be installed. You can tick off any of the files that you do not wish to install, and Godot will also inform you about any problems with files that it cannot install. These files will be shown in red, and hovering over them will show you a message stating why it cannot be installed."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:171
#: ../../docs/community/asset_library/using_assetlib.rst:171
msgid "|image12|"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:173
#: ../../docs/community/asset_library/using_assetlib.rst:173
msgid "Once you are done, you can press the Install button, which will unzip all the files in the archive, and import any assets contained therein, such as images or 3D models. Once this is done, you should see a message stating that the Package installation is complete."
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:178
#: ../../docs/community/asset_library/using_assetlib.rst:178
msgid "|image13|"
msgstr ""
#: ../../docs/tutorials/assetlib/using_assetlib.rst:180
#: ../../docs/community/asset_library/using_assetlib.rst:180
msgid "You may also use the Import button to import asset archives obtained elsewhere (such as downloading them directly from the AssetLib web frontend), which will take you through the same package installation procedure as with the assets downloaded directly via Godot that we just covered."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,54 +16,54 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/tutorials/assetlib/what_is_assetlib.rst:4
#: ../../docs/community/asset_library/what_is_assetlib.rst:4
msgid "About the Asset Library"
msgstr ""
#: ../../docs/tutorials/assetlib/what_is_assetlib.rst:6
#: ../../docs/community/asset_library/what_is_assetlib.rst:6
msgid "The Godot Asset Library, otherwise known as the AssetLib, is a repository of user-submitted Godot addons, scripts, tools, and other resources, collectively referred to as assets. They're available to all Godot users for download directly from within the engine, but it can also be accessed at Godot's `official website <https://godotengine.org/asset-library/asset>`_."
msgstr ""
#: ../../docs/tutorials/assetlib/what_is_assetlib.rst:11
#: ../../docs/community/asset_library/what_is_assetlib.rst:11
msgid "On the surface, the Asset Library might look and function similar to asset stores available for other engines, such as Unity's Asset Store, or Unreal Engine's Marketplace, where you can submit both freely-available assets, as well as paid, commercial ones. In addition, often times such assets are distributed under non-free, proprietary licenses, limiting what you can do with them."
msgstr ""
#: ../../docs/tutorials/assetlib/what_is_assetlib.rst:17
#: ../../docs/community/asset_library/what_is_assetlib.rst:17
msgid "The Asset Library is different - all assets are distributed free of charge, and under a host of open-source licenses (such as the MIT license, the GPL, and the Boost Software License). This makes the AssetLib more similar to the software repositories of a Linux distribution."
msgstr ""
#: ../../docs/tutorials/assetlib/what_is_assetlib.rst:21
#: ../../docs/community/asset_library/what_is_assetlib.rst:21
msgid "This set of pages will cover how to use the AssetLib (both from inside Godot, and on the website), how you can submit your own assets, and what the guidelines for submission are."
msgstr ""
#: ../../docs/tutorials/assetlib/what_is_assetlib.rst:24
#: ../../docs/community/asset_library/what_is_assetlib.rst:24
msgid "Please note that the AssetLib is relatively young - it may have various pain points, bugs, and usability issues. As with all Godot projects, the code repository is available on `GitHub <https://github.com/godotengine/godot-asset-library>`_, where you can submit pull requests and issues, so please do not hesitate to visit it!"
msgstr ""
#: ../../docs/tutorials/assetlib/what_is_assetlib.rst:29
#: ../../docs/community/asset_library/what_is_assetlib.rst:29
msgid "Types of assets"
msgstr ""
#: ../../docs/tutorials/assetlib/what_is_assetlib.rst:31
#: ../../docs/community/asset_library/what_is_assetlib.rst:31
msgid "Be aware that there are, broadly, two different types of assets you can post."
msgstr ""
#: ../../docs/tutorials/assetlib/what_is_assetlib.rst:33
#: ../../docs/community/asset_library/what_is_assetlib.rst:33
msgid "Assets labeled as \"Templates\", \"Projects\", or \"Demos\" appear under the \"Templates\" tab in the Godot project manager. These assets are standalone Godot projects that can run by themselves."
msgstr ""
#: ../../docs/tutorials/assetlib/what_is_assetlib.rst:37
#: ../../docs/community/asset_library/what_is_assetlib.rst:37
msgid "Other assets show up inside of the Godot editor under the \"AssetLib\" main screen tab, next to \"2D\", \"3D\", and \"Script\". These assets are meant to be downloaded and placed into an existing Godot project."
msgstr ""
#: ../../docs/tutorials/assetlib/what_is_assetlib.rst:42
#: ../../docs/community/asset_library/what_is_assetlib.rst:42
msgid "Frequently asked questions"
msgstr ""
#: ../../docs/tutorials/assetlib/what_is_assetlib.rst:45
#: ../../docs/community/asset_library/what_is_assetlib.rst:45
msgid "Can paid assets be uploaded to the asset library?"
msgstr ""
#: ../../docs/tutorials/assetlib/what_is_assetlib.rst:47
#: ../../docs/community/asset_library/what_is_assetlib.rst:47
msgid "Not to the official one, though in the future, there might be other asset libraries which allow it. That said, you are allowed to monetize and sell Godot assets outside the Asset Library."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -41,89 +41,101 @@ msgid "`Official Godot Questions & Answers <https://godotengine.org/qa/>`_"
msgstr ""
#: ../../docs/community/channels.rst:18
msgid "IRC on Freenode"
msgid "Rocket.Chat"
msgstr ""
#: ../../docs/community/channels.rst:20
msgid "`General: #godotengine <https://webchat.freenode.net/?channels=#godotengine>`_"
msgstr ""
#: ../../docs/community/channels.rst:21
msgid "`Engine development: #godotengine-devel <https://webchat.freenode.net/?channels=#godotengine-devel>`_"
msgstr ""
#: ../../docs/community/channels.rst:22
msgid "`Documentation: #godotengine-doc <https://webchat.freenode.net/?channels=#godotengine-doc>`_"
msgid "`Godot Contributors Chat <https://chat.godotengine.org/>`_"
msgstr ""
#: ../../docs/community/channels.rst:23
msgid "`Pull request meetings: #godotengine-meeting <https://webchat.freenode.net/?channels=#godotengine-meeting>`_"
msgid "IRC on Freenode"
msgstr ""
#: ../../docs/community/channels.rst:24
msgid "`GDNative: #godotengine-gdnative <https://webchat.freenode.net/?channels=#godotengine-gdnative>`_"
msgstr ""
#: ../../docs/community/channels.rst:25
msgid "`Website and public relations: #godotengine-atelier <https://webchat.freenode.net/?channels=#godotengine-atelier>`_"
msgstr ""
#: ../../docs/community/channels.rst:26
msgid "`IRC logs <https://godot.eska.me/irc-logs/>`_"
#: ../../docs/community/channels.rst:27
msgid "As of January 2021, core developer chat has moved to the Godot Contributors Chat platform listed above."
msgstr ""
#: ../../docs/community/channels.rst:29
msgid "Other chats"
msgid "`General: #godotengine <https://webchat.freenode.net/?channels=#godotengine>`_"
msgstr ""
#: ../../docs/community/channels.rst:30
msgid "`Engine development: #godotengine-devel <https://webchat.freenode.net/?channels=#godotengine-devel>`_"
msgstr ""
#: ../../docs/community/channels.rst:31
msgid "`Discord <https://discord.gg/4JBkykG>`_"
msgid "`Documentation: #godotengine-doc <https://webchat.freenode.net/?channels=#godotengine-doc>`_"
msgstr ""
#: ../../docs/community/channels.rst:32
msgid "`Matrix (IRC compatible) <https://matrix.to/#/#godotengine:matrix.org>`_"
msgid "`Pull request meetings: #godotengine-meeting <https://webchat.freenode.net/?channels=#godotengine-meeting>`_"
msgstr ""
#: ../../docs/community/channels.rst:33
msgid "`GDNative: #godotengine-gdnative <https://webchat.freenode.net/?channels=#godotengine-gdnative>`_"
msgstr ""
#: ../../docs/community/channels.rst:34
msgid "`Website and public relations: #godotengine-atelier <https://webchat.freenode.net/?channels=#godotengine-atelier>`_"
msgstr ""
#: ../../docs/community/channels.rst:35
msgid "Language-based communities"
msgid "`IRC logs <https://freenode.logbot.info/godotengine-devel>`_"
msgstr ""
#: ../../docs/community/channels.rst:37
msgid "See the `User groups <https://godotengine.org/community/user-groups>`_ page of the website for a list of local communities."
#: ../../docs/community/channels.rst:38
msgid "Other chats"
msgstr ""
#: ../../docs/community/channels.rst:40
msgid "`Discord <https://discord.gg/4JBkykG>`_"
msgstr ""
#: ../../docs/community/channels.rst:41
msgid "Social networks"
msgstr ""
#: ../../docs/community/channels.rst:43
msgid "`GitHub <https://github.com/godotengine/>`_"
msgid "`Matrix (IRC compatible) <https://matrix.to/#/#godotengine:matrix.org>`_"
msgstr ""
#: ../../docs/community/channels.rst:44
msgid "`Facebook group <https://www.facebook.com/groups/godotengine/>`_"
msgid "Language-based communities"
msgstr ""
#: ../../docs/community/channels.rst:45
msgid "`Twitter <https://twitter.com/godotengine>`_ (see also the `#GodotEngine <https://twitter.com/hashtag/GodotEngine>`_ hashtag)"
#: ../../docs/community/channels.rst:46
msgid "See the `User groups <https://godotengine.org/community/user-groups>`_ page of the website for a list of local communities."
msgstr ""
#: ../../docs/community/channels.rst:47
msgid "`Reddit <https://www.reddit.com/r/godot>`_"
msgstr ""
#: ../../docs/community/channels.rst:48
msgid "`YouTube <https://www.youtube.com/c/GodotEngineOfficial>`_"
msgstr ""
#: ../../docs/community/channels.rst:49
msgid "`Steam <https://steamcommunity.com/app/404790>`_"
#: ../../docs/community/channels.rst:50
msgid "Social networks"
msgstr ""
#: ../../docs/community/channels.rst:52
msgid "Forum"
msgid "`GitHub <https://github.com/godotengine/>`_"
msgstr ""
#: ../../docs/community/channels.rst:53
msgid "`Facebook group <https://www.facebook.com/groups/godotengine/>`_"
msgstr ""
#: ../../docs/community/channels.rst:54
msgid "`Twitter <https://twitter.com/godotengine>`_ (see also the `#GodotEngine <https://twitter.com/hashtag/GodotEngine>`_ hashtag)"
msgstr ""
#: ../../docs/community/channels.rst:56
msgid "`Reddit <https://www.reddit.com/r/godot>`_"
msgstr ""
#: ../../docs/community/channels.rst:57
msgid "`YouTube <https://www.youtube.com/c/GodotEngineOfficial>`_"
msgstr ""
#: ../../docs/community/channels.rst:58
msgid "`Steam <https://steamcommunity.com/app/404790>`_"
msgstr ""
#: ../../docs/community/channels.rst:61
msgid "Forum"
msgstr ""
#: ../../docs/community/channels.rst:63
msgid "`Godot Forums <https://godotforums.org/>`_"
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -53,7 +53,7 @@ msgid "#1: The problem always comes first"
msgstr ""
#: ../../docs/community/contributing/best_practices_for_engine_contributors.rst:36
msgid "Many contributors are extremely creative and just enjoy the process of designing abstract data structures, creating nice user interfaces, or simply love programming. Whatever the case may be, they come up with cool ideas, which may not be actually solving any actual problems."
msgid "Many contributors are extremely creative and just enjoy the process of designing abstract data structures, creating nice user interfaces, or simply love programming. Whatever the case may be, they come up with cool ideas, which may or may not be solving any real problems."
msgstr ""
#: ../../docs/community/contributing/best_practices_for_engine_contributors.rst:43
@@ -109,7 +109,7 @@ msgid "The frequency the problem"
msgstr ""
#: ../../docs/community/contributing/best_practices_for_engine_contributors.rst:91
msgid "If the problem is *too complex* for most users to solve, the software must offer a ready-made solution for it. Likewise, if the problem is easy for the user to workaround, offering such a solution is unnecessary and it's up to the user to do it."
msgid "If the problem is *too complex* for most users to solve, the software must offer a ready-made solution for it. Likewise, if the problem is easy for the user to work around, offering such a solution is unnecessary and it's up to the user to do it."
msgstr ""
#: ../../docs/community/contributing/best_practices_for_engine_contributors.rst:96
@@ -125,7 +125,7 @@ msgid "#4: The solution must be discussed with others"
msgstr ""
#: ../../docs/community/contributing/best_practices_for_engine_contributors.rst:107
msgid "It is often the case that, when users stumble upon problems, they are only immersed in their own project, so they will naturally try to solve the problem from their own perspective, thinking only about their use case."
msgid "It is often the case that when users stumble upon problems, they are only immersed in their project, so they will naturally try to solve the problem from their perspective, thinking only about their use case."
msgstr ""
#: ../../docs/community/contributing/best_practices_for_engine_contributors.rst:111
@@ -161,7 +161,7 @@ msgid "The situation will often take a turn for the worse when, in order to make
msgstr ""
#: ../../docs/community/contributing/best_practices_for_engine_contributors.rst:150
msgid "The main problem is that, in reality, it rarely works this way. Most of the time, just writing an individual solution to each problem results in code that is simpler and more maintainable."
msgid "The main problem is that, in reality, it rarely works this way. Most of the time, writing an individual solution to each problem results in code that is simpler and more maintainable."
msgstr ""
#: ../../docs/community/contributing/best_practices_for_engine_contributors.rst:154
@@ -169,7 +169,7 @@ msgid "Additionally, solutions that target individual problems are better for th
msgstr ""
#: ../../docs/community/contributing/best_practices_for_engine_contributors.rst:159
msgid "Big and flexible solutions also have an additional drawback which is that, over time, they are rarely flexible enough for all users, which keep requesting more functions added (and making the API and codebase more and more complex)."
msgid "Big and flexible solutions also have an additional drawback which is that, over time, they are rarely flexible enough for all users, who keep requesting more functions added (and making the API and codebase more and more complex)."
msgstr ""
#: ../../docs/community/contributing/best_practices_for_engine_contributors.rst:164
@@ -233,7 +233,7 @@ msgid "Not every problem has a simple solution and, many times, the right choice
msgstr ""
#: ../../docs/community/contributing/best_practices_for_engine_contributors.rst:228
msgid "As Godot requires to be shipped in a large amount of platforms, we just can't link libraries dynamically. Instead, we bundle them in our source tree."
msgid "As Godot requires to be shipped in a large amount of platforms, we can't link libraries dynamically. Instead, we bundle them in our source tree."
msgstr ""
#: ../../docs/community/contributing/best_practices_for_engine_contributors.rst:233

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -21,221 +21,319 @@ msgid "Bug triage guidelines"
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:6
msgid "This page describes the typical workflow of the bug triage team aka bugsquad when handling issues and pull requests on Godot's `GitHub <https://github.com/godotengine/godot>`_ repository. It is bound to evolve together with the bugsquad, so do not hesitate to propose modifications to the following guidelines."
msgid "This page describes the typical workflow of the bug triage team aka bugsquad when handling issues and pull requests on Godot's `GitHub repository <https://github.com/godotengine/godot>`__. It is bound to evolve together with the bugsquad, so do not hesitate to propose modifications to the following guidelines."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:12
#: ../../docs/community/contributing/bug_triage_guidelines.rst:13
msgid "Issues management"
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:14
#: ../../docs/community/contributing/bug_triage_guidelines.rst:15
msgid "GitHub proposes various features to manage issues:"
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:16
#: ../../docs/community/contributing/bug_triage_guidelines.rst:17
msgid "Set one or several labels from a predefined list"
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:17
#: ../../docs/community/contributing/bug_triage_guidelines.rst:18
msgid "Set one milestone from a predefined list"
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:18
#: ../../docs/community/contributing/bug_triage_guidelines.rst:19
msgid "Keep track of the issue in the project dashboard"
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:19
#: ../../docs/community/contributing/bug_triage_guidelines.rst:20
msgid "Define one contributor as \"assignee\" among the Godot engine organization members"
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:22
#: ../../docs/community/contributing/bug_triage_guidelines.rst:23
msgid "As the Godot engine organization on GitHub currently has a restricted number of contributors, we do not use assignees extensively for now. All contributors are welcome to take on any issue, if relevant after mentioning it on the issue ticket and/or discussing the best way to resolve it with other developers."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:28
msgid "For the time being we do not use the project dashboard feature either."
#: ../../docs/community/contributing/bug_triage_guidelines.rst:29
msgid "For the time being, we do not use the project dashboard feature either."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:30
#: ../../docs/community/contributing/bug_triage_guidelines.rst:31
msgid "As far as possible, we try to assign labels (and milestones, when relevant) to both issues and pull requests."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:34
#: ../../docs/community/contributing/bug_triage_guidelines.rst:35
msgid "Labels"
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:36
#: ../../docs/community/contributing/bug_triage_guidelines.rst:37
msgid "The following labels are currently defined in the Godot repository:"
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:38
#: ../../docs/community/contributing/bug_triage_guidelines.rst:39
msgid "**Categories:**"
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:40
#: ../../docs/community/contributing/bug_triage_guidelines.rst:41
msgid "*Archived*: either a duplicate of another issue, or invalid. Such an issue would also be closed."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:42
#: ../../docs/community/contributing/bug_triage_guidelines.rst:43
msgid "*Breaks compat*: describes something that can only be fixed by breaking compatibility with existing projects."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:45
msgid "*Bug*: describes something that is not working properly."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:43
#: ../../docs/community/contributing/bug_triage_guidelines.rst:46
msgid "*Cherrypick*: describes something that can be backported to a stable branch after being merged in the ``master`` branch."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:48
msgid "*Crash:* describes a bug that causes the engine to crash. This label is only used for \"hard\" crashes, not freezes."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:50
msgid "*Confirmed*: has been confirmed by at least one other contributor than the bug reporter (typically for *Bug* reports). The purpose of this label is to let developers know which issues are still reproducible when they want to select what to work on. It is therefore a good practice to add in a comment on what platform and what version or commit of Godot the issue could be reproduced; if a developer looks at the issue one year later, the *Confirmed* label may not be relevant anymore."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:51
#: ../../docs/community/contributing/bug_triage_guidelines.rst:58
#: ../../docs/community/contributing/bug_triage_guidelines.rst:158
msgid "*Discussion*: the issue is not consensual and needs further discussion to define what exactly should be done to address the topic."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:54
#: ../../docs/community/contributing/bug_triage_guidelines.rst:61
msgid "*Documentation*: issue related to the documentation. Mainly to request enhancements in the API documentation. Issues related to the ReadTheDocs documentation should be filed on the `godot-docs <https://github.com/godotengine/godot-docs>`_ repository."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:58
#: ../../docs/community/contributing/bug_triage_guidelines.rst:65
msgid "*Enhancement*: describes a proposed enhancement to an existing functionality."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:60
msgid "*Feature proposal*: describes a wish for a new feature to be implemented."
#: ../../docs/community/contributing/bug_triage_guidelines.rst:67
msgid "*Feature proposal*: describes a wish for a new feature to be implemented. Note that the main Godot repository no longer accepts feature requests. Please use `godot-proposals <https://github.com/godotengine/godot-proposals>`__ instead."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:62
msgid "*Junior job*: the issue is *assumed* to be an easy one to fix, which makes it a great fit for junior contributors who need to become familiar with the code base."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:65
msgid "*Needs rebase*: the issue need a Git rebase to be merged."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:66
msgid "*Needs testing*: the issue/pull request could not be completely tested and thus need further testing. This can mean that it needs to be tested on different hardware/software configurations or even that the steps to reproduce are not certain."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:70
msgid "*Performance*: issues that directly impact engine or editor performance. Can also be used for pull requests that improve performance or add low-end-friendly options. Should not be coupled with *Usability*."
#: ../../docs/community/contributing/bug_triage_guidelines.rst:71
msgid "*For PR meeting*: the issue needs to be discussed in a pull request meeting. These meetings are public and are held on the `Godot Contributors Chat <https://chat.godotengine.org/>`_."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:73
msgid "*PR welcome / Hero wanted!*: Contributions for issues with these labels are especially welcome. Note that this **doesn't** mean you can't work on issues without these labels."
msgid "*Junior job*: the issue is *assumed* to be an easy one to fix, which makes it a great fit for junior contributors who need to become familiar with the code base."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:76
msgid "*Regression*: the bug appeared after a stable release not exhibiting the bug was released."
msgid "*High priority:* the issue is particularly important as it can prevent people from releasing their projects or cause data loss."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:78
msgid "*Salvageable*: the pull request can't be merged due to design issues or merge conflicts and its author is not active anymore. However, it can still be picked up by an external contributor to bring it to a mergeable state. To do so, you need to open a new pull request based on the original pull request."
msgid "*Needs work*: the pull request needs additional work before it can be merged."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:82
msgid "*Tracker*: issue used to track other issues (like all issues related to the plugin system)."
#: ../../docs/community/contributing/bug_triage_guidelines.rst:79
msgid "*Needs testing*: the issue/pull request could not be completely tested and thus need further testing. This can mean that it needs to be tested on different hardware/software configurations or even that the steps to reproduce are not certain."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:84
msgid "*Usability*: issues that directly impact user usability. Should not be coupled with *Performance*."
#: ../../docs/community/contributing/bug_triage_guidelines.rst:83
msgid "*Performance*: issues that directly impact engine or editor performance. Can also be used for pull requests that improve performance or add low-end-friendly options. Should not be coupled with *Usability*."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:86
msgid "The categories are used for general triage of the issues. They can be combined in some way when relevant, e.g. an issue can be labelled *Enhancement* and *Usability* at the same time if it's an issue to improve usability. Or *Feature proposal* and *Discussion* if it's a non-consensual feature request, or one that is not precise enough to be worked on."
msgid "*PR welcome / Hero wanted!*: Contributions for issues with these labels are especially welcome. Note that this **doesn't** mean you can't work on issues without these labels."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:92
msgid "**Topics:**"
#: ../../docs/community/contributing/bug_triage_guidelines.rst:89
msgid "*Regression*: the bug appeared after a stable release not exhibiting the bug was released."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:94
msgid "*2D*: relates to 2D-specific issues. Should be coupled with one of the labels below, and should not be coupled with *3D*."
#: ../../docs/community/contributing/bug_triage_guidelines.rst:91
#: ../../docs/community/contributing/bug_triage_guidelines.rst:169
msgid "*Salvageable*: the pull request can't be merged due to design issues or merge conflicts and its author is not active anymore. However, it can still be picked up by an external contributor to bring it to a mergeable state. To do so, you need to open a new pull request based on the original pull request."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:95
msgid "*3D*: relates to 3D-specific issues. Should be coupled with one of the labels below, and should not be coupled with *2D*."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:96
msgid "*Assetlib*: relates to issues with the asset library."
msgid "*Tracker*: issue used to track other issues (like all issues related to the plugin system)."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:97
msgid "*Audio*: relates to the audio features (low and high level)."
msgid "*Usability*: issues that directly impact user usability. Should not be coupled with *Performance*."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:98
msgid "*Buildsystem*: relates to building issues, either linked to the SCons buildsystem or to compiler peculiarities."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:100
msgid "*Core*: anything related to the core engine. It might be further split later on as it's a pretty big topic."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:102
msgid "*Drivers*: relates to issues with the drivers used by the engine."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:103
msgid "*Editor*: relates to issues in the editor (mainly UI)."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:104
msgid "*GDNative*: relates to the GDNative module."
#: ../../docs/community/contributing/bug_triage_guidelines.rst:99
msgid "The categories are used for general triage of the issues. They can be combined in some way when relevant, e.g. an issue can be labelled *Enhancement* and *Usability* at the same time if it's an issue to improve usability. Or *Feature proposal* and *Discussion* if it's a non-consensual feature request, or one that is not precise enough to be worked on."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:105
msgid "*GDScript*: relates to GDScript."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:106
msgid "*Mono*: relates to the C# / Mono bindings."
msgid "**Topics:**"
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:107
msgid "*Network*: relates to networking."
msgid "*2D*: relates to 2D-specific issues. Should be coupled with one of the labels below, and should not be coupled with *3D*."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:108
msgid "*Physics*: relates to the physics engine (2D/3D)."
msgid "*3D*: relates to 3D-specific issues. Should be coupled with one of the labels below, and should not be coupled with *2D*."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:109
msgid "*Plugin*: relates to problems encountered while writing plugins."
msgid "*Assetlib*: relates to issues with the asset library."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:110
msgid "*Porting*: relates to some specific platforms."
msgid "*Audio*: relates to the audio features (low and high level)."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:111
msgid "*Rendering*: relates to the 2D and 3D rendering engines."
msgid "*Buildsystem*: relates to building issues, either linked to the SCons buildsystem or to compiler peculiarities."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:112
msgid "*VisualScript*: relates to issues with the visual scripting language."
#: ../../docs/community/contributing/bug_triage_guidelines.rst:113
msgid "*Codestyle*: relates to the programming style used within the codebase."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:114
msgid "Issues would typically correspond to only one topic, though it's not unthinkable to see issues that fit two bills. The general idea is that there will be specialized contributors teams behind all topics, so they can focus on the issues labelled with their team's topic."
msgid "*Core*: anything related to the core engine. It might be further split later on as it's a pretty big topic."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:116
msgid "*Editor*: relates to issues in the editor (mainly UI)."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:117
msgid "*GDNative*: relates to the GDNative module."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:118
msgid "*GDScript*: relates to GDScript."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:119
msgid "**Platforms:**"
msgid "*GUI*: relates to GUI (Control) nodes."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:120
msgid "*Import*: relates to the resource import system."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:121
msgid "*Android*, *HTML5*, *iOS*, *Linux*, *macOS*, *Windows*, *UWP*"
msgid "*Input*: relates to input system."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:122
msgid "*Mono*: relates to the C# / Mono bindings."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:123
msgid "By default, it is assumed that a given issue applies to all platforms. If one of the platform labels is used, it is then exclusive and the previous assumption doesn't stand anymore (so if it's a bug on e.g. Android and Linux exclusively, select those two platforms)."
msgid "*Navigation*: relates to the navigation system (including A* and navmeshes)."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:124
msgid "*Network*: relates to networking."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:125
msgid "*Physics*: relates to the physics engine (2D/3D)."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:126
msgid "*Plugin*: relates to problems encountered while writing plugins."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:127
msgid "*Porting*: relates to some specific platforms or exporting projects."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:128
msgid "*Rendering*: relates to the 2D and 3D rendering engines."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:129
msgid "Milestones"
msgid "*Shaders*: relates to the Godot shader language or visual shaders."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:130
msgid "*Tests*: relates to unit tests."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:131
msgid "`Milestones <https://github.com/godotengine/godot/milestones>`_ correspond to planned future versions of Godot for which there is an existing roadmap. Issues that fit in the said roadmap should be filed under the corresponding milestone; if they don't correspond to any current roadmap, they should be left without milestone. As a rule of thumb, an issue corresponds to a given milestone if it concerns a feature that is new in the milestone, or a critical bug that can't be accepted in any future stable release, or anything that Juan wants to work on right now. :)"
msgid "*Thirdparty*: relates to third-party libraries used in Godot."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:132
msgid "*VisualScript*: relates to issues with the visual scripting language (*not* visual shaders)."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:133
msgid "*XR*: relates to Augmented Reality or Virtual Reality."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:135
msgid "Issues would typically correspond to only one topic, though it's not unthinkable to see issues that fit two bills. The general idea is that there will be specialized contributors teams behind all topics, so they can focus on the issues labelled with their team's topic."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:140
msgid "**Platforms:**"
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:142
msgid "*Android*, *HTML5*, *iOS*, *Linux*, *macOS*, *Windows*, *UWP*"
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:144
msgid "By default, it is assumed that a given issue applies to all platforms. If one of the platform labels is used, it is then exclusive and the previous assumption doesn't stand anymore (so if it's a bug on e.g. Android and Linux exclusively, select those two platforms)."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:150
msgid "Documentation labels"
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:152
msgid "In the `documentation repository <https://github.com/godotengine/godot-docs>`__, we use the following labels:"
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:155
msgid "*Bug*: Incorrect information in an existing page. Not to be used for *missing* information."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:157
msgid "*Class reference*: the issue is about the class reference, not a documentation page."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:161
msgid "*Enhancememnt*: new information to be added in an existing page."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:162
msgid "*New page*: a new page to be created."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:163
msgid "*Hero wanted!*: contributions for issues with these labels are especially welcome. Note that this **doesn't** mean you can't work on issues without these labels."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:166
msgid "*Organization*: The issue involves moving pages around or reorganizing content."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:167
msgid "*Redirect*: a redirection needs to be created in the Read the Docs backend. Only administrators can do this."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:173
msgid "*Topic:Mono*: the issue is about C# support in Godot."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:174
msgid "*Topic:Website*: the issue relates to the Sphinx/Read the Docs frontend or backend, not the documentation contents."
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:178
msgid "Milestones"
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:180
msgid "`Milestones <https://github.com/godotengine/godot/milestones>`_ correspond to planned future versions of Godot for which there is an existing roadmap. Issues that fit in the said roadmap should be filed under the corresponding milestone; if they don't correspond to any current roadmap, they should be left without milestone. As a rule of thumb, an issue corresponds to a given milestone if it concerns a feature that is new in the milestone, or a critical bug that can't be accepted in any future stable release, or anything that Juan wants to work on right now. :)"
msgstr ""
#: ../../docs/community/contributing/bug_triage_guidelines.rst:189
msgid "Contributors are free to pick issues regardless of their assigned milestone; if a fix is proposed for a bug that was not deemed urgent and thus without milestone, it would likely still be very welcome."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -0,0 +1,380 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:4
msgid "Class reference writing guidelines"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:6
msgid "This page explains how to write the class reference. You will learn where to write new descriptions for the classes, methods, and properties for Godot's built-in node types."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:12
msgid "To learn to submit your changes to the Godot project using the Git version control system, see :ref:`doc_updating_the_class_reference`."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:15
msgid "The reference for each class is contained in an XML file like the one below:"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:65
msgid "It starts with brief and long descriptions. In the generated docs, the brief description is always at the top of the page, while the long description lies below the list of methods, variables, and constants. You can find methods, member variables, constants, and signals in separate XML nodes."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:70
msgid "For each, you want to learn how they work in Godot's source code. Then, fill their documentation by completing or improving the text in these tags:"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:73
msgid "`<brief_description>`"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:74
msgid "`<description>`"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:75
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:80
msgid "`<constant>`"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:76
msgid "`<method>` (in its `<description>` tag; return types and arguments don't take separate documentation strings)"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:78
msgid "`<member>`"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:79
msgid "`<signal>` (in its `<description>` tag; arguments don't take separate documentation strings)"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:82
msgid "Write in a clear and simple language. Always follow the :ref:`writing guidelines <doc_docs_writing_guidelines>` to keep your descriptions short and easy to read. **Do not leave empty lines** in the descriptions: each line in the XML file will result in a new paragraph, even if it is empty."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:90
msgid "How to edit class XML"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:92
msgid "Edit the file for your chosen class in ``doc/classes/`` to update the class reference. The folder contains an XML file for each class. The XML lists the constants and methods you will find in the class reference. Godot generates and updates the XML automatically."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:97
msgid "For some modules in the engine's source code, you'll find the XML files in the ``modules/<module_name>/doc_classes/`` directory instead."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:100
msgid "Edit it using your favorite text editor. If you use a code editor, make sure that it doesn't change the indent style: you should use tabs for the XML and four spaces inside BBCode-style blocks. More on that below."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:104
msgid "To check that the modifications you've made are correct in the generated documentation, navigate to the ``doc/`` folder and run the command ``make rst``. This will convert the XML files to the online documentation's format and output errors if anything's wrong."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:109
msgid "Alternatively, you can build Godot and open the modified page in the built-in code reference. To learn how to compile the engine, read the :ref:`compilation guide <toc-devel-compiling>`."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:113
msgid "We recommend using a code editor that supports XML files like Vim, Atom, Visual Studio Code, Notepad++, or another to comfortably edit the file. You can also use their search feature to find classes and properties quickly."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:120
msgid "Improve formatting with BBCode style tags"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:122
msgid "Godot's class reference supports BBCode-like tags. They add nice formatting to the text. Here's the list of available tags:"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:126
msgid "Tag"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:126
msgid "Effect"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:126
msgid "Usage"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:126
msgid "Result"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:128
msgid "[Class]"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:128
msgid "Link a class"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:128
msgid "Move the [Sprite2D]."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:128
msgid "Move the :ref:`class_Sprite`."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:130
msgid "[method methodname]"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:130
msgid "Link to a method in this class"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:130
msgid "Call [method hide]."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:130
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:132
msgid "Call :ref:`hide <class_Spatial_method_hide>`."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:132
msgid "[method Class.methodname]"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:132
msgid "Link to another class's method"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:132
msgid "Call [method Node3D.hide]."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:134
msgid "[member membername]"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:134
msgid "Link to a member in this class"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:134
msgid "Get [member scale]."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:134
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:136
msgid "Get :ref:`scale <class_Node2D_property_scale>`."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:136
msgid "[member Class.membername]"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:136
msgid "Link to another class's member"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:136
msgid "Get [member Node2D.scale]."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:138
msgid "[signal signalname]"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:138
msgid "Link to a signal in this class"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:138
msgid "Emit [signal renamed]."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:138
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:140
msgid "Emit :ref:`renamed <class_Node_signal_renamed>`."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:140
msgid "[signal Class.signalname]"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:140
msgid "Link to another class's signal"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:140
msgid "Emit [signal Node.renamed]."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:142
msgid "[b] [/b]"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:142
msgid "Bold"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:142
msgid "Some [b]bold[/b] text."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:142
msgid "Some **bold** text."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:144
msgid "[i] [/i]"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:144
msgid "Italic"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:144
msgid "Some [i]italic[/i] text."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:144
msgid "Some *italic* text."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:146
msgid "[code] [/code]"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:146
msgid "Monospace"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:146
msgid "Some [code]monospace[/code] text."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:146
msgid "Some ``monospace`` text."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:148
msgid "[kbd] [/kbd]"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:148
msgid "Keyboard/mouse shortcut"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:148
msgid "Some [kbd]Ctrl + C[/kbd] key."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:148
msgid "Some :kbd:`Ctrl + C` key."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:150
msgid "[codeblock] [/codeblock]"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:150
msgid "Multiline preformatted block"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:150
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:150
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:152
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:152
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:154
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:154
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:156
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:156
msgid "*See below.*"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:152
msgid "[codeblocks] [/codeblocks]"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:152
msgid "[codeblock] for multiple languages"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:154
msgid "[gdscript] [/gdscript]"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:154
msgid "GDScript codeblock tab in codeblocks"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:156
msgid "[csharp] [/csharp]"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:156
msgid "C# codeblock tab in codeblocks"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:159
msgid "Use ``[codeblock]`` for pre-formatted code blocks. Inside ``[codeblock]``, always use **four spaces** for indentation. The parser will delete tabs. For example:"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:171
msgid "Will display as:"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:179
msgid "If you need to have different code version in GDScript and C#, use ``[codeblocks]`` instead. If you use ``[codeblocks]``, you also need to have at least one of the language-specific tags, ``[gdscript]`` and ``[csharp]``."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:183
msgid "Always write GDScript code examples first! You can use this `experimental code translation tool <https://github.com/HaSa1002/codetranslator>`_ to speed up your workflow."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:204
msgid "The above will display as:"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:221
msgid "To denote important information, add a paragraph starting with \"[b]Note:[/b]\" at the end of the description:"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:228
msgid "To denote crucial information that could cause security issues or loss of data if not followed carefully, add a paragraph starting with \"[b]Warning:[/b]\" at the end of the description:"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:236
msgid "For deprecated properties, add a paragraph starting with \"[i]Deprecated.[/i]\". Notice the use of italics instead of bold:"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:243
msgid "In all the paragraphs described above, make sure the punctuation is part of the BBCode tags for consistency."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:247
msgid "I don't know what this method does!"
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:249
msgid "No problem. Leave it behind, and list the methods you skipped when you request a pull of your changes. Another writer will take care of it."
msgstr ""
#: ../../docs/community/contributing/class_reference_writing_guidelines.rst:252
msgid "You can still look at the methods' implementation in Godot's source code on GitHub. If you have doubts, feel free to ask on the `Q&A website <https://godotengine.org/qa/>`__ and `Godot Contributors Chat <https://chat.godotengine.org/>`_."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -64,246 +64,254 @@ msgstr ""
msgid "Third-party code is usually included in the ``thirdparty/`` folder and can thus easily be excluded from formatting scripts. For the rare cases where a third-party code snippet needs to be included directly within a Godot file, you can use ``/* clang-format off */`` and ``/* clang-format on */`` to tell clang-format to ignore a chunk of code."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:52
#: ../../docs/community/contributing/code_style_guidelines.rst:53
msgid "These guidelines only cover code formatting. See :ref:`doc_cpp_usage_guidelines` for a list of language features that are permitted in pull requests."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:57
msgid "Using clang-format locally"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:54
#: ../../docs/community/contributing/code_style_guidelines.rst:59
msgid "First of all, you will need to install clang-format. As of now, you need to use **clang-format 13** to be compatible with Godot's format. Later versions might be suitable, but previous versions may not support all used options, or format some things differently, leading to style issues in pull requests."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:60
#: ../../docs/community/contributing/code_style_guidelines.rst:261
#: ../../docs/community/contributing/code_style_guidelines.rst:65
#: ../../docs/community/contributing/code_style_guidelines.rst:270
msgid "Installation"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:62
#: ../../docs/community/contributing/code_style_guidelines.rst:67
msgid "Here's how to install clang-format:"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:64
#: ../../docs/community/contributing/code_style_guidelines.rst:69
msgid "Linux: It will usually be available out-of-the-box with the clang toolchain packaged by your distribution. If your distro version is not the required one, you can download a pre-compiled version from the `LLVM website <http://releases.llvm.org/download.html>`__, or if you are on a Debian derivative, use the `upstream repos <http://apt.llvm.org/>`__."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:69
#: ../../docs/community/contributing/code_style_guidelines.rst:74
msgid "macOS and Windows: You can download precompiled binaries from the `LLVM website <http://releases.llvm.org/download.html>`__. You may need to add the path to the binary's folder to your system's ``PATH`` environment variable to be able to call ``clang-format`` out of the box."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:74
#: ../../docs/community/contributing/code_style_guidelines.rst:79
msgid "You then have different possibilities to apply clang-format to your changes:"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:77
#: ../../docs/community/contributing/code_style_guidelines.rst:273
#: ../../docs/community/contributing/code_style_guidelines.rst:82
#: ../../docs/community/contributing/code_style_guidelines.rst:282
msgid "Manual usage"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:79
#: ../../docs/community/contributing/code_style_guidelines.rst:84
msgid "You can apply clang-format manually one or more files with the following command:"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:86
#: ../../docs/community/contributing/code_style_guidelines.rst:91
msgid "``-i`` means that the changes should be written directly to the file (by default clang-format would only output the fixed version to the terminal)."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:88
#: ../../docs/community/contributing/code_style_guidelines.rst:93
msgid "The path can point to several files, either one after the other or using wildcards like in a typical Unix shell. Be careful when globbing so that you don't run clang-format on compiled objects (.o and .a files) that are in Godot's tree. So better use ``core/*.{cpp,h}`` than ``core/*``."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:94
#: ../../docs/community/contributing/code_style_guidelines.rst:288
#: ../../docs/community/contributing/code_style_guidelines.rst:99
#: ../../docs/community/contributing/code_style_guidelines.rst:297
msgid "Pre-commit hook"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:96
#: ../../docs/community/contributing/code_style_guidelines.rst:101
msgid "For ease of use, we provide a pre-commit hook for Git that will run clang-format automatically on all your commits to check them, and let you apply its changes in the final commit."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:100
#: ../../docs/community/contributing/code_style_guidelines.rst:105
msgid "This \"hook\" is a script which can be found in ``misc/hooks``, refer to that folder's README.md for installation instructions."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:103
#: ../../docs/community/contributing/code_style_guidelines.rst:108
msgid "If your clang-format is not in the ``PATH``, you may have to edit the ``pre-commit-clang-format`` to point to the correct binary for it to work. The hook was tested on Linux and macOS, but should also work in the Git Shell on Windows."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:109
#: ../../docs/community/contributing/code_style_guidelines.rst:114
msgid "IDE plugin"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:111
#: ../../docs/community/contributing/code_style_guidelines.rst:116
msgid "Most IDEs or code editors have beautifier plugins that can be configured to run clang-format automatically, for example each time you save a file."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:114
#: ../../docs/community/contributing/code_style_guidelines.rst:119
msgid "Here is a non-exhaustive list of beautifier plugins for some IDEs:"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:116
#: ../../docs/community/contributing/code_style_guidelines.rst:121
msgid "Qt Creator: `Beautifier plugin <http://doc.qt.io/qtcreator/creator-beautifier.html>`__"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:117
#: ../../docs/community/contributing/code_style_guidelines.rst:122
msgid "Visual Studio Code: `Clang-Format <https://marketplace.visualstudio.com/items?itemName=xaver.clang-format>`__"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:118
#: ../../docs/community/contributing/code_style_guidelines.rst:123
msgid "Visual Studio: `ClangFormat <https://marketplace.visualstudio.com/items?itemName=LLVMExtensions.ClangFormat>`__"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:119
#: ../../docs/community/contributing/code_style_guidelines.rst:124
msgid "vim: `vim-clang-format <https://github.com/rhysd/vim-clang-format>`__"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:121
#: ../../docs/community/contributing/code_style_guidelines.rst:125
msgid "CLion: Starting from version ``2019.1``, no plugin is required. Instead, enable `ClangFormat <https://www.jetbrains.com/help/clion/clangformat-as-alternative-formatter.html#clion-support>`__"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:128
msgid "(Pull requests welcome to extend this list with tested plugins.)"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:124
#: ../../docs/community/contributing/code_style_guidelines.rst:133
msgid "Header includes"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:126
#: ../../docs/community/contributing/code_style_guidelines.rst:135
msgid "When adding new C++ or Objective-C files or including new headers in existing ones, the following rules should be followed:"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:129
#: ../../docs/community/contributing/code_style_guidelines.rst:138
msgid "The first lines in the file should be Godot's copyright header and MIT license, copy-pasted from another file. Make sure to adjust the filename."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:131
#: ../../docs/community/contributing/code_style_guidelines.rst:140
msgid "In a ``.h`` header, include guards should be used with the form ``FILENAME_H``."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:134
#: ../../docs/community/contributing/code_style_guidelines.rst:143
msgid "In a ``.cpp`` file (e.g. ``filename.cpp``), the first include should be the one where the class is declared (e.g. ``#include \"filename.h\"``), followed by an empty line for separation."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:137
#: ../../docs/community/contributing/code_style_guidelines.rst:146
msgid "Then come headers from Godot's own code base, included in alphabetical order (enforced by ``clang-format``) with paths relative to the root folder. Those includes should be done with quotes, e.g. ``#include \"core/object.h\"``. The block of Godot header includes should then be followed by an empty line for separation."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:142
#: ../../docs/community/contributing/code_style_guidelines.rst:151
msgid "Finally, third-party headers (either from ``thirdparty`` or from the system's include paths) come next and should be included with the < and > symbols, e.g. ``#include <png.h>``. The block of third-party headers should also be followed by an empty line for separation."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:146
#: ../../docs/community/contributing/code_style_guidelines.rst:155
msgid "Godot and third-party headers should be included in the file that requires them, i.e. in the `.h` header if used in the declarative code or in the `.cpp` if used only in the imperative code."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:150
#: ../../docs/community/contributing/code_style_guidelines.rst:159
msgid "Example:"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:238
#: ../../docs/community/contributing/code_style_guidelines.rst:247
msgid "Java"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:240
#: ../../docs/community/contributing/code_style_guidelines.rst:249
msgid "Godot's Java code (mostly in ``platform/android``) is also enforced via ``clang-format``, so see the instructions above to set it up. Keep in mind that this style guide only applies to code written and maintained by Godot, not third-party code such as the ``java/src/com/google`` subfolder."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:246
#: ../../docs/community/contributing/code_style_guidelines.rst:255
msgid "Python"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:248
#: ../../docs/community/contributing/code_style_guidelines.rst:257
msgid "Godot's SCons buildsystem is written in Python, and various scripts included in the source tree are also using Python."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:251
#: ../../docs/community/contributing/code_style_guidelines.rst:260
msgid "For those, we follow the `Black style guide <https://github.com/psf/black#the-black-code-style>`__. Blacken your Python changes using `Black <https://pypi.org/project/black/>`__."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:255
#: ../../docs/community/contributing/code_style_guidelines.rst:264
msgid "Using black locally"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:257
#: ../../docs/community/contributing/code_style_guidelines.rst:266
msgid "First of all, you will need to install black. Black requires Python 3.6.0+ to run."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:263
#: ../../docs/community/contributing/code_style_guidelines.rst:272
msgid "Here's how to install black:"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:270
#: ../../docs/community/contributing/code_style_guidelines.rst:279
msgid "You then have different possibilities to apply black to your changes:"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:275
#: ../../docs/community/contributing/code_style_guidelines.rst:284
msgid "You can apply ``black`` manually to one or more files with the following command:"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:282
#: ../../docs/community/contributing/code_style_guidelines.rst:291
msgid "``-l 120`` means that the allowed number of characters per line is 120. This number was agreed upon by the developers."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:284
#: ../../docs/community/contributing/code_style_guidelines.rst:293
msgid "The path can point to several files, either one after the other or using wildcards like in a typical Unix shell."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:290
#: ../../docs/community/contributing/code_style_guidelines.rst:299
msgid "For ease of use, we provide a pre-commit hook for Git that will run black automatically on all your commits to check them, and let you apply its changes in the final commit."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:294
#: ../../docs/community/contributing/code_style_guidelines.rst:303
msgid "This \"hook\" is a script which can be found in ``misc/hooks``. Refer to that folder's ``README.md`` for installation instructions."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:299
#: ../../docs/community/contributing/code_style_guidelines.rst:308
msgid "Editor integration"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:301
#: ../../docs/community/contributing/code_style_guidelines.rst:310
msgid "Many IDEs or code editors have beautifier plugins that can be configured to run black automatically, for example each time you save a file. For details you can check `Black editor integration <https://github.com/psf/black#editor-integration>`__."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:306
#: ../../docs/community/contributing/code_style_guidelines.rst:315
msgid "Comment style guide"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:308
#: ../../docs/community/contributing/code_style_guidelines.rst:317
msgid "This comment style guide applies to all programming languages used within Godot's codebase."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:311
#: ../../docs/community/contributing/code_style_guidelines.rst:320
msgid "Begin comments with a space character to distinguish them from disabled code."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:312
#: ../../docs/community/contributing/code_style_guidelines.rst:321
msgid "Use sentence case for comments. Begin comments with an uppercase character and always end them with a period."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:314
#: ../../docs/community/contributing/code_style_guidelines.rst:323
msgid "Reference variable/function names and values using backticks."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:315
#: ../../docs/community/contributing/code_style_guidelines.rst:324
msgid "Wrap comments to ~100 characters."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:316
#: ../../docs/community/contributing/code_style_guidelines.rst:325
msgid "You can use ``TODO:``, ``FIXME:``, ``NOTE:``, or ``HACK:`` as adominitions when needed."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:319
#: ../../docs/community/contributing/code_style_guidelines.rst:342
#: ../../docs/community/contributing/code_style_guidelines.rst:328
#: ../../docs/community/contributing/code_style_guidelines.rst:351
msgid "**Example:**"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:327
#: ../../docs/community/contributing/code_style_guidelines.rst:336
msgid "Don't repeat what the code says in a comment. Explain the *why* rather than *how*."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:329
#: ../../docs/community/contributing/code_style_guidelines.rst:338
msgid "**Bad:**"
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:336
#: ../../docs/community/contributing/code_style_guidelines.rst:345
msgid "You can use Javadoc-style comments above function or macro definitions. It's recommended to use Javadoc-style comments *only* for methods which are not exposed to scripting. This is because exposed methods should be documented in the :ref:`class reference XML <doc_updating_the_class_reference>` instead."
msgstr ""
#: ../../docs/community/contributing/code_style_guidelines.rst:354
#: ../../docs/community/contributing/code_style_guidelines.rst:363
msgid "For member variables, don't use Javadoc-style comments but use single-line comments instead:"
msgstr ""

View File

@@ -0,0 +1,113 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/community/contributing/content_guidelines.rst:4
msgid "Content guidelines"
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:6
msgid "This document is here to help us assess what we should include in the official documentation. Below, you will find a couple of principles and recommendations to write accessible content."
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:10
msgid "We want to achieve two goals:"
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:12
msgid "**Empathize with our users.** We should write in a way that makes it easy for them to learn from the docs."
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:14
msgid "**Write a complete reference manual**. Our goal here is not to teach programming foundations. Instead, we should provide a reference for how Godot's features work."
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:19
msgid "Guidelines and principles"
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:21
msgid "Below are the guidelines we should strive to follow. They are not hard rules, though: exceptionally, a topic will require breaking one or more of these. Still, we should strive to achieve the two goals listed above."
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:26
msgid "Writing complete and accessible documentation"
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:28
msgid "**A feature doesn't exist unless it is documented**. If a user can't find information about a feature and how it works, it doesn't exist to them. We should ensure that we cover everything Godot does."
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:34
msgid "When adding or updating an engine feature, the documentation team needs to know about it. Contributors should open an issue on the `godot-docs` repository when their work gets merged and requires documentation."
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:38
msgid "Do your best to keep documents **under 1000 words in length**. If a page goes past that threshold, consider splitting it into two parts if possible. Limiting page size forces us to write concisely and to break large documents so they each focus on a particular problem."
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:43
msgid "Make it clear what **problem** each page or section of a page tackles and what the user will learn from it. Users need to know if they're reading the correct guide to solving problems they encounter. For example, instead of writing the heading \"Signals\", consider writing \"Reacting to changes with signals\". The second title makes it clear what the purpose of signals is."
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:51
msgid "Long section titles lead to long entries in the side menu, which can make navigation cumbersome. Try to keep headings five words long or less."
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:54
msgid "If the page assumes specific knowledge of other Godot features, mention it and link it to the corresponding documentation. For instance, a page about physics may use signals, in which case we could note that the page that introduces signals is a pre-requisite."
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:60
msgid "Limiting cognitive load"
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:62
msgid "Limit the cognitive load required to read the documentation. The simpler and more explicit language we use, the more efficient it becomes for people to learn. You can do so by:"
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:66
msgid "Introducing only one new concept at a time whenever possible."
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:67
msgid "Using simple English, as we recommend in our writing guidelines."
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:68
msgid "Including one or more **concrete usage examples**. Prefer a real-world example to abstract code like ``foobar``."
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:71
msgid "While many people may understand more complex language and abstract examples, you will lose others. Also, understandable writing and practical examples benefit everyone."
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:75
msgid "Always make an effort to **put yourself in the user's shoes**. When we understand something thoroughly, it becomes evident to us. We may fail to think about details relevant to a newcomer, but **good documentation meets users where they are**. We should strive to explain each feature's capabilities or intended uses with the most straightforward language possible."
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:81
msgid "Try to remember what you first needed to know when learning about the feature or concept. What new terms did you need to learn? What confused you? What was the hardest to grasp? You will want users to review your work, and we recommend you practice explaining the feature before writing about it."
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:88
msgid "Having programming foundations is a pre-requisite to use a complex engine like Godot. Talking about variables, functions, or classes is acceptable. But we should favor plain language over specific terminology like \"metaprogramming\". If you need to use precise terms, be sure to define them."
msgstr ""
#: ../../docs/community/contributing/content_guidelines.rst:93
msgid "When a page assumes knowledge of another engine feature, declare it at the beginning and link to resources that cover what users need. You may also link to other websites for pre-requisites beyond the documentation's scope. For example, you could link to an introduction to programming in the getting started guide, or a website that teaches math theory in the math section."
msgstr ""

View File

@@ -0,0 +1,221 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:4
msgid "Contributing to the documentation"
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:6
msgid "This guide explains how to contribute to Godot's documentation, be it by writing or reviewing pages."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:11
msgid "If you want to translate pages or the class reference from English to other languages, read :ref:`doc_editor_and_docs_localization`."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:15
msgid "Getting started"
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:17
msgid "To modify or create pages in the reference manual, you need to edit ``.rst`` files in the `godot-docs GitHub repository <https://github.com/godotengine/godot-docs>`_. Modifying those pages in a pull request triggers a rebuild of the online documentation upon merging."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:22
msgid "For details on Git usage and the pull request workflow, please refer to the :ref:`doc_pr_workflow` page. Most of what it describes regarding the main godotengine/godot repository is also valid for the docs repository."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:27
msgid "The class reference's source files are in the `Godot engine repository <https://github.com/godotengine/godot>`_. We generate the :ref:`Godot API <toc-class-ref>` section of this documentation from them. If you want to update the description of a class, its methods, or properties, read :ref:`doc_updating_the_class_reference`."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:35
msgid "What is the Godot documentation"
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:37
msgid "The Godot documentation is intended as a comprehensive reference manual for the Godot game engine. It is not meant to contain step-by-step tutorials, except for two game creation tutorials in the Getting Started section."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:41
msgid "We strive to write factual content in an accessible and well-written language. To contribute, you should also read:"
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:44
msgid "The :ref:`doc_docs_writing_guidelines`. There, you will find rules and recommendations to write in a way that everyone understands."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:46
msgid "The content guidelines. They explain the principles we follow to write the documentation and the kind of content we accept."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:50
msgid "Contributing changes"
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:52
msgid "**Pull Requests should use the** ``master`` **branch by default.** Only make Pull Requests against other branches (e.g. ``2.1`` or ``3.0``) if your changes only apply to that specific version of Godot."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:56
msgid "Though less convenient to edit than a wiki, this Git repository is where we write the documentation. Having direct access to the source files in a revision control system is a plus to ensure our documentation quality."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:61
msgid "Editing existing pages"
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:63
msgid "To edit an existing page, locate its ``.rst`` source file and open it in your favorite text editor. You can then commit the changes, push them to your fork, and make a pull request. **Note that the pages in** ``classes/`` **should not be edited here.** They are automatically generated from Godots `XML class reference <https://github.com/godotengine/godot/tree/master/doc/classes>`__. See :ref:`doc_updating_the_class_reference` for details."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:70
msgid "To build the manual and test changes on your computer, see :ref:`doc_building_the_manual`."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:74
msgid "Editing pages online"
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:76
msgid "You can edit the documentation online by clicking the **Edit on GitHub** link in the top-right of every page."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:79
msgid "Doing so takes you to the GitHub text editor. You need to have a GitHub account and to log in to use it. Once logged in, you can propose change like so:"
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:82
msgid "Click the **Edit on GitHub** button."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:84
msgid "On the GitHub page you're taken to, click the pencil icon in the top-right corner near the **Raw**, **Blame**, and **Delete** buttons. It has the tooltip \"Fork this project and edit the file\"."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:88
msgid "Edit the text in the text editor."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:90
msgid "At the bottom of the web page, summarize the changes you made and click the button **Propose file change**. Make sure to replace the placeholder \"Update file.rst\" by a short but clear one-line description, as this is the commit title."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:94
msgid "On the following screens, click the **Create pull request** button until you see a message like *Username wants to merge 1 commit into godotengine:master from Username:patch-1*."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:98
msgid "Another contributor will review your changes and merge them into the docs if they're good. They may also make changes or ask you to do so before merging."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:102
msgid "Adding new pages"
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:104
msgid "Before adding a new page, please ensure that it fits in the documentation:"
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:106
msgid "Look for `existing issues <https://github.com/godotengine/godot-docs/issues>`_ or open a new one to see if the page is necessary."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:109
msgid "Ensure there isn't a page that already covers the topic."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:110
msgid "Read our :ref:`doc_content_guidelines`."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:112
msgid "To add a new page, create a ``.rst`` file with a meaningful name in the section you want to add a file to, e.g. ``tutorials/3d/light_baking.rst``."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:115
msgid "You should then add your page to the relevant \"toctree\" (table of contents, e.g. ``tutorials/3d/index.rst``). Add your new filename to the list on a new line, using a relative path and no extension, e.g. here ``light_baking``."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:120
msgid "Titles"
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:122
msgid "Always begin pages with their title and a Sphinx reference name:"
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:131
msgid "The reference ``_doc_insert_your_title_here`` and the title should match."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:133
msgid "The reference allows linking to this page using the ``:ref:`` format, e.g. ``:ref:`doc_insert_your_title_here``` would link to the above example page (note the lack of leading underscore in the reference)."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:137
msgid "Write your titles like plain sentences, without capitalizing each word:"
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:139
msgid "**Good:** Understanding signals in Godot"
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:140
msgid "**Bad:** Understanding Signals In Godot"
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:142
msgid "Only propers nouns, projects, people, and node class names should have their first letter capitalized."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:146
msgid "Sphinx and reStructuredText syntax"
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:148
msgid "Check Sphinxs `reST Primer <https://www.sphinx-doc.org/en/stable/rest.html>`__ and the `official reference <http://docutils.sourceforge.net/rst.html>`__ for details on the syntax."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:152
msgid "Sphinx uses specific reST comments to do specific operations, like defining the table of contents (``.. toctree::``) or cross-referencing pages. Check the `official Sphinx documentation <https://www.sphinx-doc.org/en/stable/index.html>`__ for more details. To learn how to use Sphinx directives like ``.. note::`` or ``.. seealso::``, check out the `Sphinx directives documentation <https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html>`__."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:161
msgid "Adding images and attachments"
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:163
msgid "To add images, please put them in an ``img/`` folder next to the ``.rst`` file with a meaningful name and include them in your page with:"
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:170
msgid "Similarly, you can include attachments, like assets as support material for a tutorial, by placing them into a ``files/`` folder next to the ``.rst`` file, and using this inline markup:"
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:180
msgid "License"
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:182
msgid "This documentation and every page it contains is published under the terms of the `Creative Commons Attribution 3.0 license (CC-BY-3.0) <https://tldrlegal.com/license/creative-commons-attribution-(cc)>`_, with attribution to \"Juan Linietsky, Ariel Manzur and the Godot community\"."
msgstr ""
#: ../../docs/community/contributing/contributing_to_the_documentation.rst:187
msgid "By contributing to the documentation on the GitHub repository, you agree that your changes are distributed under this license."
msgstr ""

View File

@@ -0,0 +1,121 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:4
msgid "C++ usage guidelines"
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:7
msgid "Rationale"
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:9
msgid "Since Godot 4.0, the C++ standard used throughout the codebase is a subset of **C++17**. While modern C++ brings a lot of opportunities to write faster, more readable code, we chose to restrict our usage of C++ to a subset for a few reasons:"
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:14
msgid "It makes it easier to review code in online editors. This is because engine contributors don't always have access to a full-featured IDE while reviewing code."
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:17
msgid "It makes the code easier to grasp for beginner contributors (who may not be professional C++ programmers). Godot's codebase is known to be easy to learn from, and we'd like to keep it that way."
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:21
msgid "To get your pull request merged, it needs to follow the C++ usage guidelines outlined here. Of course, you can use features not allowed here in your own C++ modules or GDNative scripts."
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:27
msgid "Prior to Godot 4.0, the C++ standard used throughout the codebase was C++03, with a handful of C++14 extensions. If you are contributing a pull request to the `3.x` branch rather than `master`, your code can't use C++17 features. Instead, your code must be able to be built with a C++14 compiler."
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:32
msgid "The guidelines below don't apply to third-party dependencies, although we generally favor small libraries instead of larger solutions. See also :ref:`doc_best_practices_for_engine_contributors`."
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:38
msgid "See :ref:`doc_code_style_guidelines` for formatting guidelines."
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:41
msgid "Disallowed features"
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:43
msgid "**Any feature not listed below is allowed.** Using features like ``constexpr`` variables and ``nullptr`` is encouraged when possible. Still, try to keep your use of modern C++ features conservative. Their use needs to serve a real purpose, such as improving code readability or performance."
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:49
msgid "Standard Template Library"
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:51
msgid "We don't allow using the `STL <https://en.wikipedia.org/wiki/Standard_Template_Library>`__ as Godot provides its own data types (among other things). See :ref:`doc_faq_why_not_stl` for more information."
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:55
msgid "This means that pull requests should **not** use ``std::string``, ``std::vector`` and the like. Instead, use Godot's datatypes as described below:"
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:58
msgid "Use ``String`` instead of ``std::string``."
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:59
msgid "Use ``Vector`` instead of ``std::vector``. In some cases, ``List`` or ``LocalVector`` can be used as an alternative (ask core developers first)."
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:61
msgid "Use ``Array`` instead of ``std::array``."
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:64
msgid "``auto`` keyword"
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:66
msgid "Please don't use the ``auto`` keyword for type inference. While it can avoid repetition, it can also lead to confusing code:"
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:77
msgid "Keep in mind hover documentation often isn't readily available for pull request reviewers. Most of the time, reviewers will use GitHub's online viewer to review pull requests."
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:81
msgid "We chose to forbid ``auto`` instead of allowing it on a case-by-case basis to avoid having to decide on difficult edge cases. Thank you for your understanding."
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:85
msgid "Lambdas"
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:87
msgid "Lambdas should be used conservatively when they make code effectively faster or simpler, and do not impede readability. Please ask before using lambdas in a pull request."
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:92
msgid "``#pragma once`` directive"
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:94
msgid "To follow the existing style, please use standard ``#ifdef``-based include guards instead of ``#pragma once`` in new files."
msgstr ""
#: ../../docs/community/contributing/cpp_usage_guidelines.rst:99
msgid "See :ref:`doc_code_style_guidelines_header_includes` for guidelines on sorting includes in C++ and Objective-C files."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -29,17 +29,17 @@ msgid "In summary, always try to:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:14
#: ../../docs/community/contributing/docs_writing_guidelines.rst:39
#: ../../docs/community/contributing/docs_writing_guidelines.rst:44
msgid "Use the direct voice"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:15
#: ../../docs/community/contributing/docs_writing_guidelines.rst:74
#: ../../docs/community/contributing/docs_writing_guidelines.rst:79
msgid "Use precise action verbs"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:16
#: ../../docs/community/contributing/docs_writing_guidelines.rst:96
#: ../../docs/community/contributing/docs_writing_guidelines.rst:101
msgid "Avoid verbs that end in -ing"
msgstr ""
@@ -52,12 +52,12 @@ msgid "Ban these 8 words: obvious, simple, basic, easy, actual, just, clear, and
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:19
#: ../../docs/community/contributing/docs_writing_guidelines.rst:214
#: ../../docs/community/contributing/docs_writing_guidelines.rst:219
msgid "Use explicit references"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:20
#: ../../docs/community/contributing/docs_writing_guidelines.rst:235
#: ../../docs/community/contributing/docs_writing_guidelines.rst:240
msgid "Use 's to show possession"
msgstr ""
@@ -70,17 +70,17 @@ msgid "There are 3 rules to describe classes:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:25
#: ../../docs/community/contributing/docs_writing_guidelines.rst:372
#: ../../docs/community/contributing/docs_writing_guidelines.rst:377
msgid "Give an overview of the node in the brief description"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:26
#: ../../docs/community/contributing/docs_writing_guidelines.rst:401
#: ../../docs/community/contributing/docs_writing_guidelines.rst:406
msgid "Mention what methods return if it's useful"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:27
#: ../../docs/community/contributing/docs_writing_guidelines.rst:426
#: ../../docs/community/contributing/docs_writing_guidelines.rst:431
msgid "Use \"if true\" to describe booleans"
msgstr ""
@@ -88,403 +88,407 @@ msgstr ""
msgid "A technical writer's job is to pack as much information as possible into the smallest and clearest sentences possible. These guidelines will help you work towards that goal."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:36
msgid "7 rules for clear English"
#: ../../docs/community/contributing/docs_writing_guidelines.rst:37
msgid "See the :ref:`content guidelines <doc_content_guidelines>` for information on the types of documentation you can write in the official documentation."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:41
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."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:47
#: ../../docs/community/contributing/docs_writing_guidelines.rst:52
msgid "Passive:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:53
#: ../../docs/community/contributing/docs_writing_guidelines.rst:58
msgid "Active:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:59
#: ../../docs/community/contributing/docs_writing_guidelines.rst:407
#: ../../docs/community/contributing/docs_writing_guidelines.rst:64
#: ../../docs/community/contributing/docs_writing_guidelines.rst:412
msgid "**Don't** use the passive voice:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:66
#: ../../docs/community/contributing/docs_writing_guidelines.rst:71
msgid "**Do** use the node's name as a noun:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:76
#: ../../docs/community/contributing/docs_writing_guidelines.rst:81
msgid "Favor precise yet common verbs over generic ones like ``make``, ``set``, and any expression you can replace with a single word."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:79
#: ../../docs/community/contributing/docs_writing_guidelines.rst:84
msgid "**Don't** repeat the method's name. It already states it sets the pivot value to a new one:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:87
#: ../../docs/community/contributing/docs_writing_guidelines.rst:92
msgid "**Do** explain what's the consequence of this \"set\": use precise verbs like ``place``, ``position``, ``rotate``, ``fade``, etc."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:98
#: ../../docs/community/contributing/docs_writing_guidelines.rst:103
msgid "The progressive forms describe continuous actions. E.g. \"is calling\", \"is moving\"."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:101
#: ../../docs/community/contributing/docs_writing_guidelines.rst:106
msgid "**Don't** use the progressive form for instant changes."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:108
msgid "**Do** use simple present, preterit or future."
#: ../../docs/community/contributing/docs_writing_guidelines.rst:113
msgid "**Do** use simple present, past, or future."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:115
#: ../../docs/community/contributing/docs_writing_guidelines.rst:120
msgid "Exception: If the subject is not clear, replacing \"ing\" verbs is not an improvement. For example, in the previous sentence, \"it replaces\" would not make much sense where \"replacing\" currently is."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:119
#: ../../docs/community/contributing/docs_writing_guidelines.rst:124
msgid "You may use the progressive tense to describe actions that are continuous in time. Anything like animation or coroutines."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:124
#: ../../docs/community/contributing/docs_writing_guidelines.rst:129
msgid "Verbs can turn into adjectival nouns with -ing. This is not a conjugation, so you may use them: ``the remaining movement``, ``the missing file``, etc."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:129
#: ../../docs/community/contributing/docs_writing_guidelines.rst:134
msgid "Remove unnecessary adverbs and adjectives"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:131
#: ../../docs/community/contributing/docs_writing_guidelines.rst:136
msgid "Write as few adjectives and adverbs as possible. Only use them if they add key information to the description."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:134
#: ../../docs/community/contributing/docs_writing_guidelines.rst:139
msgid "**Don't** use redundant or meaningless adverbs. Words that lengthen the documentation but don't add any information:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:141
#: ../../docs/community/contributing/docs_writing_guidelines.rst:146
msgid "**Do** write short sentences in a simple, descriptive language:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:148
#: ../../docs/community/contributing/docs_writing_guidelines.rst:153
msgid "Ban these 8 words"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:150
#: ../../docs/community/contributing/docs_writing_guidelines.rst:155
msgid "**Don't** ever use these 8 banned words:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:152
#: ../../docs/community/contributing/docs_writing_guidelines.rst:157
msgid "obvious"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:153
#: ../../docs/community/contributing/docs_writing_guidelines.rst:158
msgid "simple"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:154
#: ../../docs/community/contributing/docs_writing_guidelines.rst:159
msgid "basic"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:155
#: ../../docs/community/contributing/docs_writing_guidelines.rst:160
msgid "easy"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:156
#: ../../docs/community/contributing/docs_writing_guidelines.rst:161
msgid "actual"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:157
#: ../../docs/community/contributing/docs_writing_guidelines.rst:162
msgid "just"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:158
#: ../../docs/community/contributing/docs_writing_guidelines.rst:163
msgid "clear"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:159
#: ../../docs/community/contributing/docs_writing_guidelines.rst:164
msgid "however (some uses)"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:161
#: ../../docs/community/contributing/docs_writing_guidelines.rst:166
msgid "Game creation and programming aren't simple, and nothing's easy to someone learning to use the API for the first time. Other words in the list, like ``just`` or ``actual`` won't add any info to the sentence. Don't use corresponding adverbs either: obviously, simply, basically, easily, actually, clearly."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:167
#: ../../docs/community/contributing/docs_writing_guidelines.rst:172
msgid "**Don't** example. The banned words lengthen the description and take attention away from the most important info:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:175
#: ../../docs/community/contributing/docs_writing_guidelines.rst:180
msgid "**Do** remove them:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:182
#: ../../docs/community/contributing/docs_writing_guidelines.rst:187
msgid "\"Simple\" never helps. Remember, for other users, anything could be complex or frustrate them. There's nothing like a good old *it's simple* to make you cringe. Here's the old brief description, the first sentence on the Timer node's page:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:192
#: ../../docs/community/contributing/docs_writing_guidelines.rst:197
msgid "**Do** explain what the node does instead:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:199
#: ../../docs/community/contributing/docs_writing_guidelines.rst:204
msgid "**Don't** use \"basic\", it is too vague:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:206
#: ../../docs/community/contributing/docs_writing_guidelines.rst:211
msgid "**Do** use the brief description to offer an overview of the node:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:216
#: ../../docs/community/contributing/docs_writing_guidelines.rst:221
msgid "Favor explicit references over implicit ones."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:218
#: ../../docs/community/contributing/docs_writing_guidelines.rst:223
msgid "**Don't** use words like \"the former\", \"the latter\", etc. They're not the most common in English, and they require you to check the reference."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:225
#: ../../docs/community/contributing/docs_writing_guidelines.rst:230
msgid "**Do** repeat words. They remove all ambiguity:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:231
#: ../../docs/community/contributing/docs_writing_guidelines.rst:236
msgid "If you need to repeat the same variable name 3 or 4 times, you probably need to rephrase your description."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:237
#: ../../docs/community/contributing/docs_writing_guidelines.rst:242
msgid "Avoid \"The milk **of** the cow\". It feels unnatural in English. Write \"The cow's milk\" instead."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:240
#: ../../docs/community/contributing/docs_writing_guidelines.rst:245
msgid "**Don't** write \"of the X\":"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:246
#: ../../docs/community/contributing/docs_writing_guidelines.rst:251
msgid "**Do** use ``'s``. It lets you put the main subject at the start of the sentence, and keep it short:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:254
#: ../../docs/community/contributing/docs_writing_guidelines.rst:259
msgid "Use the Oxford comma to enumerate anything"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:256
#: ../../docs/community/contributing/docs_writing_guidelines.rst:261
msgid "From the Oxford dictionary:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:258
#: ../../docs/community/contributing/docs_writing_guidelines.rst:263
msgid "The 'Oxford comma' is an optional comma before the word 'and' at the end of a list: *We sell books, videos, and magazines.*"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:261
#: ../../docs/community/contributing/docs_writing_guidelines.rst:266
msgid "[...] Not all writers and publishers use it, but it can clarify the meaning of a sentence when the items in a list are not single words: *These items are available in black and white, red and yellow, and blue and green.*"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:264
#: ../../docs/community/contributing/docs_writing_guidelines.rst:269
msgid "**Don't** leave the last element of a list without a comma:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:270
#: ../../docs/community/contributing/docs_writing_guidelines.rst:275
msgid "**Do** add a comma before `and` or `or`, for the last element of a list with more than two elements."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:279
#: ../../docs/community/contributing/docs_writing_guidelines.rst:284
msgid "How to write methods and classes"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:282
#: ../../docs/community/contributing/docs_writing_guidelines.rst:287
msgid "Dynamic vs static typing"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:284
#: ../../docs/community/contributing/docs_writing_guidelines.rst:289
msgid "The code examples in the documentation should follow a consistent style not to confuse users. As static type hints are an optional feature of GDScript, we chose to stick to writing dynamic code. This leads to writing GDScript that is concise and accessible."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:289
#: ../../docs/community/contributing/docs_writing_guidelines.rst:294
msgid "The exception is topics that explain static typing concepts to users."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:291
#: ../../docs/community/contributing/docs_writing_guidelines.rst:296
msgid "**Don't** add a type hint with a colon or by casting:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:301
#: ../../docs/community/contributing/docs_writing_guidelines.rst:306
msgid "**Do** write constants and variables with dynamic typing:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:311
#: ../../docs/community/contributing/docs_writing_guidelines.rst:316
msgid "**Don't** write functions with inferred arguments or return types:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:322
#: ../../docs/community/contributing/docs_writing_guidelines.rst:327
msgid "**Do** write functions using dynamic typing:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:334
#: ../../docs/community/contributing/docs_writing_guidelines.rst:339
msgid "Use real-world code examples where appropriate"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:336
#: ../../docs/community/contributing/docs_writing_guidelines.rst:341
msgid "Real-world examples are more accessible to beginners than abstract ``foos`` and ``bars``. You can also copy them directly from your game projects, ensuring that any code snippet compiles without errors."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:340
#: ../../docs/community/contributing/docs_writing_guidelines.rst:345
msgid "Writing ``var speed = 10`` rather than ``var my_var = 10`` allows beginners to understand code better. It gives them a frame of reference as to where they could use the code snippets in a live project."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:344
#: ../../docs/community/contributing/docs_writing_guidelines.rst:349
msgid "**Don't** write made-up examples:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:355
#: ../../docs/community/contributing/docs_writing_guidelines.rst:360
msgid "**Do** write concrete examples:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:367
#: ../../docs/community/contributing/docs_writing_guidelines.rst:372
msgid "Of course, there are times when using real-world examples is impractical. In those situations, you should still avoid using names such as ``my_var``, ``foo()`` or ``my_func()`` and consider more meaningful names for your examples."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:374
#: ../../docs/community/contributing/docs_writing_guidelines.rst:379
msgid "The brief description is the reference's most important sentence. It's the user's first contact with a node:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:377
#: ../../docs/community/contributing/docs_writing_guidelines.rst:382
msgid "It's the only description in the \"Create New Node\" dialog."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:378
#: ../../docs/community/contributing/docs_writing_guidelines.rst:383
msgid "It's at the top of every page in the reference"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:380
#: ../../docs/community/contributing/docs_writing_guidelines.rst:385
msgid "The brief description should explain the node's role and its functionality, in up to 200 characters."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:383
#: ../../docs/community/contributing/docs_writing_guidelines.rst:388
msgid "**Don't** write tiny and vague summaries:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:390
#: ../../docs/community/contributing/docs_writing_guidelines.rst:395
msgid "**Do** give an overview of the node's functionality:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:397
#: ../../docs/community/contributing/docs_writing_guidelines.rst:402
msgid "Use the node's full description to provide more information, and a code example, if possible."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:403
#: ../../docs/community/contributing/docs_writing_guidelines.rst:408
msgid "Some methods return important values. Describe them at the end of the description, ideally on a new line. No need to mention the return values for any method whose name starts with ``set`` or ``get``."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:414
#: ../../docs/community/contributing/docs_writing_guidelines.rst:419
msgid "**Do** always use \"Returns\"."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:421
#: ../../docs/community/contributing/docs_writing_guidelines.rst:426
msgid "Notice the exception to the \"direct voice\" rule: with the move method, an external collider can influence the method and the body that calls ``move``. In this case, you can use the passive voice."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:428
#: ../../docs/community/contributing/docs_writing_guidelines.rst:433
msgid "For boolean member variables, always use ``if true`` and/or ``if false``, to stay explicit. ``Controls whether or not`` may be ambiguous and won't work for every member variable."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:432
#: ../../docs/community/contributing/docs_writing_guidelines.rst:437
msgid "Also, surround boolean values, variable names and methods with ``[code][/code]``."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:434
#: ../../docs/community/contributing/docs_writing_guidelines.rst:439
msgid "**Do** start with \"if true\":"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:443
#: ../../docs/community/contributing/docs_writing_guidelines.rst:448
msgid "Use ``[code]`` around arguments"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:445
#: ../../docs/community/contributing/docs_writing_guidelines.rst:450
msgid "In the class reference, always surround arguments with ``[code][/code]``. In the documentation and in Godot, it will display like ``this``. When you edit XML files in the Godot repository, replace existing arguments written like 'this' or \\`this\\` with ``[code]this[/code]``."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:452
#: ../../docs/community/contributing/docs_writing_guidelines.rst:457
msgid "Common vocabulary to use in Godot's documentation"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:454
#: ../../docs/community/contributing/docs_writing_guidelines.rst:459
msgid "The developers chose some specific words to refer to areas of the interface. They're used in the sources, in the documentation, and you should always use them instead of synonyms, so the users know what you're talking about."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:462
#: ../../docs/community/contributing/docs_writing_guidelines.rst:467
msgid "Overview of the interface and common vocabulary"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:464
#: ../../docs/community/contributing/docs_writing_guidelines.rst:469
msgid "In the top left corner of the editor lie the ``main menus``. In the center, the buttons change the ``workspace``. And together the buttons in the top right are the ``playtest buttons``. The area in the center, that displays the 2D or the 3D space, is the ``viewport``. At its top, you find a list of ``tools`` inside the ``toolbar``."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:470
#: ../../docs/community/contributing/docs_writing_guidelines.rst:475
msgid "The tabs or dockable panels on either side of the viewport are ``docks``. You have the ``FileSystem dock``, the ``Scene dock`` that contains your scene tree, the ``Import dock``, the ``Node dock``, and the ``Inspector`` or ``Inspector dock``. With the default layout you may call the tabbed docks ``tabs``: the ``Scene tab``, the ``Node tab``..."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:476
#: ../../docs/community/contributing/docs_writing_guidelines.rst:481
msgid "The Animation, Debugger, etc. at the bottom of the viewport are ``panels``. Together they make up the ``bottom panels``."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:479
#: ../../docs/community/contributing/docs_writing_guidelines.rst:484
msgid "Foldable areas of the Inspector are ``sections``. The node's parent class names, which you can't fold, are ``Classes`` e.g. the ``KinematicBody2D class``. And individual lines with key-value pairs are ``properties``. E.g. ``position`` or ``modulate color`` are both ``properties``."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:486
#: ../../docs/community/contributing/docs_writing_guidelines.rst:491
msgid "Keyboard shortcut guidelines"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:488
#: ../../docs/community/contributing/docs_writing_guidelines.rst:493
msgid "Keyboard and mouse shortcuts should make use of the ``:kbd:`` tag, which allows shortcuts to stand out from the rest of the text and inline code. Use the compact form for modifier keys (:kbd:`Ctrl`/:kbd:`Cmd`) instead of their spelled out form (:kbd:`Control`/:kbd:`Command`). For combinations, use the ``+`` symbol with a space on either side of the symbol."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:494
#: ../../docs/community/contributing/docs_writing_guidelines.rst:499
msgid "Make sure to mention shortcuts that differ on macOS compared to other platforms. On macOS, ``Cmd`` often replaces ``Ctrl`` in keyboard shortcuts."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:497
#: ../../docs/community/contributing/docs_writing_guidelines.rst:502
msgid "Try to integrate the shortcut into sentences the best you can. Here are some examples with the ``:kbd:`` tag left as-is for better visibility:"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:500
#: ../../docs/community/contributing/docs_writing_guidelines.rst:505
msgid "Press ``:kbd:`Ctrl + Alt + T``` to toggle the panel (``:kbd:`Cmd + Alt + T``` on macOS)."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:501
#: ../../docs/community/contributing/docs_writing_guidelines.rst:506
msgid "Press ``:kbd:`Space``` and hold the left mouse button to pan in the 2D editor."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:502
#: ../../docs/community/contributing/docs_writing_guidelines.rst:507
msgid "Press ``:kbd:`Shift + Up Arrow``` to move the node upwards by 8 pixels."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:505
#: ../../docs/community/contributing/docs_writing_guidelines.rst:510
msgid "Image contribution guidelines"
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:507
#: ../../docs/community/contributing/docs_writing_guidelines.rst:512
msgid "A significant part of the documentation is images, and there are several important guidelines to follow."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:510
#: ../../docs/community/contributing/docs_writing_guidelines.rst:515
msgid "First, you should always be using the default editor theme and text when taking screenshots."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:513
#: ../../docs/community/contributing/docs_writing_guidelines.rst:518
msgid "To improve the appearance of 3D screenshots, use 4× MSAA, enable anisotropic filtering on the project's textures, and set the anisotropic filter quality to 16× in Project Settings."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:517
#: ../../docs/community/contributing/docs_writing_guidelines.rst:522
msgid "Screenshot sizes should not exceed 1920×1080 to ensure fast loading on slower connections."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:520
#: ../../docs/community/contributing/docs_writing_guidelines.rst:525
msgid "When you need to highlight an area of the editor to show something, like a button or option, use a 2 pixel-thick yellow outline without a bevel. If the outline is on a dark background, the outline should be yellow so it can be easily seen by colorblind people. Please do not use red as it won't be visible for some users."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:526
#: ../../docs/community/contributing/docs_writing_guidelines.rst:531
msgid "Before you add or replace any images in the documentation, they should be run through a PNG compressor to save size. You can use the lossless OxiPNG compressor included in `Squoosh <https://squoosh.app/>`__ for this purpose. For heavier images, consider using a lossy compressor like `pngquant <https://pngquant.org/>`_. With it, almost no image quality is lost during compression."
msgstr ""
#: ../../docs/community/contributing/docs_writing_guidelines.rst:535
#: ../../docs/community/contributing/docs_writing_guidelines.rst:540
msgid "The program pngquant must be installed locally as it's not available in Squoosh."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -37,121 +37,121 @@ msgid "For details on Git usage and the pull request workflow, please refer to t
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:28
msgid "The README.md file contains all the information you need to get you started, please read it. In particular, it contains some tips and tricks and links to reference documentation about the reStructuredText markup language."
msgid "The class reference's source files are in the `Godot engine repository <https://github.com/godotengine/godot>`_. We generate the :ref:`Godot API <toc-class-ref>` section of this documentation from them. If you want to update the description of a class, its methods, or properties, read :ref:`doc_updating_the_class_reference`."
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:32
#: ../../docs/community/contributing/documentation_guidelines.rst:34
msgid "If you want to edit the **API reference**, please note that it should *not* be done in the godot-docs repository. Instead, you should edit the ``doc/classes/*`` XML files of Godot's main repository. These files are then later used to generate the in-editor documentation as well as the API reference of the online docs. Read more here: :ref:`doc_updating_the_class_reference`."
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:40
#: ../../docs/community/contributing/documentation_guidelines.rst:42
msgid "The 'Edit on GitHub' link"
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:42
#: ../../docs/community/contributing/documentation_guidelines.rst:44
msgid "If you're reading documentation on `docs.godotengine.org <https://docs.godotengine.org>`_, you'll see an **Edit on GitHub** hyperlink at the top right of the page. Once you've created a GitHub account, you can propose changes to a page you're reading as follows:"
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:47
#: ../../docs/community/contributing/documentation_guidelines.rst:49
msgid "Click the **Edit on GitHub** button."
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:49
#: ../../docs/community/contributing/documentation_guidelines.rst:51
msgid "On the GitHub page you're taken to, click the pencil icon in the top-right corner near the **Raw**, **Blame** and **History** buttons. It has the tooltip \"Edit the file in a fork of this project\"."
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:53
#: ../../docs/community/contributing/documentation_guidelines.rst:55
msgid "Complete all the edits you want to make for that page."
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:55
#: ../../docs/community/contributing/documentation_guidelines.rst:57
msgid "Summarize the changes you made in the form at the bottom of the page and click the button labelled **Propose file change** when done."
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:58
#: ../../docs/community/contributing/documentation_guidelines.rst:60
msgid "On the following screens, click the **Create pull request** button until you see a message like *Username wants to merge 1 commit into godotengine:master from Username:patch-6*."
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:62
#: ../../docs/community/contributing/documentation_guidelines.rst:64
msgid "A reviewer will evaluate your changes and incorporate them into the docs if they're acceptable. You might also be asked to make modifications to your changes before they're included."
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:67
#: ../../docs/community/contributing/documentation_guidelines.rst:69
msgid "What makes good documentation?"
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:69
#: ../../docs/community/contributing/documentation_guidelines.rst:71
msgid "Documentation should be well written in plain English, using well-formed sentences and various levels of sections and subsections. It should be clear and objective. Also, have a look at the :ref:`doc_docs_writing_guidelines`."
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:73
#: ../../docs/community/contributing/documentation_guidelines.rst:75
msgid "We differentiate tutorial pages from other documentation pages by these definitions:"
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:76
#: ../../docs/community/contributing/documentation_guidelines.rst:78
msgid "Tutorial: a page aiming at explaining how to use one or more concepts in the editor or scripts in order to achieve a specific goal with a learning purpose (e.g. \"Making a simple 2d Pong game\", \"Applying forces to an object\")."
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:80
#: ../../docs/community/contributing/documentation_guidelines.rst:82
msgid "Documentation: a page describing precisely one and only one concept at a time, if possible exhaustively (e.g. the list of methods of the Sprite class, or an overview of the input management in Godot)."
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:84
#: ../../docs/community/contributing/documentation_guidelines.rst:86
msgid "You are free to write the kind of documentation you wish, as long as you respect the following rules (and the ones on the repo)."
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:88
#: ../../docs/community/contributing/documentation_guidelines.rst:90
msgid "Titles"
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:90
#: ../../docs/community/contributing/documentation_guidelines.rst:92
msgid "Always begin pages with their title and a Sphinx reference name:"
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:99
#: ../../docs/community/contributing/documentation_guidelines.rst:101
msgid "The reference allows linking to this page using the ``:ref:`` format, e.g. ``:ref:`doc_insert_your_title_here``` would link to the above example page (note the lack of leading underscore in the reference)."
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:103
#: ../../docs/community/contributing/documentation_guidelines.rst:105
msgid "Also, avoid American CamelCase titles: title's first word should begin with a capitalized letter, and every following word should not. Thus, this is a good example:"
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:107
#: ../../docs/community/contributing/documentation_guidelines.rst:109
msgid "Insert your title here"
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:109
#: ../../docs/community/contributing/documentation_guidelines.rst:111
msgid "And this is a bad example:"
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:111
#: ../../docs/community/contributing/documentation_guidelines.rst:113
msgid "Insert Your Title Here"
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:113
#: ../../docs/community/contributing/documentation_guidelines.rst:115
msgid "Only project, people and node class names should have capitalized first letter."
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:117
#: ../../docs/community/contributing/documentation_guidelines.rst:119
msgid "Translating existing pages"
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:119
#: ../../docs/community/contributing/documentation_guidelines.rst:121
msgid "You can help to translate the official Godot documentation on our `Hosted Weblate <https://hosted.weblate.org/engage/godot-engine/>`_."
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:128
#: ../../docs/community/contributing/documentation_guidelines.rst:130
msgid "There also is the official `Godot i18n repository <https://github.com/godotengine/godot-docs-l10n>`_ where you can see when the data was last synchronized."
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:133
#: ../../docs/community/contributing/documentation_guidelines.rst:135
msgid "License"
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:135
#: ../../docs/community/contributing/documentation_guidelines.rst:137
msgid "This documentation and every page it contains is published under the terms of the `Creative Commons Attribution 3.0 license (CC-BY-3.0) <https://tldrlegal.com/license/creative-commons-attribution-(cc)>`_, with attribution to \"Juan Linietsky, Ariel Manzur and the Godot community\"."
msgstr ""
#: ../../docs/community/contributing/documentation_guidelines.rst:138
#: ../../docs/community/contributing/documentation_guidelines.rst:140
msgid "By contributing to the documentation on the GitHub repository, you agree that your changes are distributed under this license."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -113,7 +113,7 @@ msgid "On that page, you have:"
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:114
msgid "A toolbar which lets you cycle through strings of the current list, change to another pre-defined list or do a custom search, etc. There is also a \"Zen\" editing mode with a simplified interface."
msgid "A toolbar which lets you cycle through strings of the current list, change to another predefined list or do a custom search, etc. There is also a \"Zen\" editing mode with a simplified interface."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:117
@@ -149,7 +149,7 @@ msgid "The editor interface's translation template is generated by parsing all t
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:167
msgid "The online documentation's translation template is generated from the source RST files in the same order as seen in the **table of contents**, so for example the first strings are from the front page of the documentation. The recommended workflow is therefore to find a unique string corresponding to a page that you want to translate, and then translate all the strings with the same source string location while comparing with the online version of that page in English. An example of source string location could be ``getting_started/step_by_step/scenes_and_nodes.rst`` for the page :ref:`doc_scenes_and_nodes`."
msgid "The online documentation's translation template is generated from the source RST files in the same order as seen in the **table of contents**, so for example the first strings are from the front page of the documentation. The recommended workflow is therefore to find a unique string corresponding to a page that you want to translate, and then translate all the strings with the same source string location while comparing with the online version of that page in English. An example of source string location could be ``getting_started/step_by_step/nodes_and_scenes.rst`` for the page :ref:`doc_nodes_and_scenes`."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:176
@@ -157,11 +157,11 @@ msgid "The class reference's translation template is generated from the source X
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:185
msgid "A handy tool to locate specific pages/classes is to use Weblate's advanced search feature, and especially the \"Location strings\" query (which can also be used with the ``location:`` token, e.g. ``location:scenes_and_nodes.rst``):"
msgid "A handy tool to locate specific pages/classes is to use Weblate's advanced search feature, and especially the \"Location strings\" query (which can also be used with the ``location:`` token, e.g. ``location:nodes_and_scenes.rst``):"
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:195
msgid "When a given source string is used in multiple source locations, they will all be concatenated into one. For example, the above ``location:scenes_and_nodes.rst`` query would land first on the \"Introduction\" source string which is used in dozens of pages, including some that come before ``scenes_and_nodes.rst`` in the template. Clicking the \"Next\" button then brings us to the \"Scene and nodes\" title string displayed above. So it may happen that a given paragraph or section title is not at the location you'd expect it when reading the online version of a page."
msgid "When a given source string is used in multiple source locations, they will all be concatenated into one. For example, the above ``location:nodes_and_scenes.rst`` query would land first on the \"Introduction\" source string which is used in dozens of pages, including some that come before ``nodes_and_scenes.rst`` in the template. Clicking the \"Next\" button then brings us to the \"Scene and nodes\" title string displayed above. So it may happen that a given paragraph or section title is not at the location you'd expect it when reading the online version of a page."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:206
@@ -189,109 +189,113 @@ msgid "**C escape characters** such as ``\\n`` (line break) or ``\\t`` (tabulati
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:247
msgid "Only logical order of the characters matters, in the right-to-left text, format specifiers may be displayed as ``s%``."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:251
msgid "Online documentation (RST)"
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:249
#: ../../docs/community/contributing/editor_and_docs_localization.rst:253
msgid "The documentation translations originate from reStructuredText (RST) files, which also use their own markup syntax to style text, create internal and external links, etc. Here are some examples::"
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:291
#: ../../docs/community/contributing/editor_and_docs_localization.rst:295
msgid "See Sphinx's `reStructured Text primer <https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html>`__ for a quick overview of the markup language you may find in source strings. You may encounter especially the inline markup (bold, italics, inline code) and the internal and external hyperlink markup."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:297
#: ../../docs/community/contributing/editor_and_docs_localization.rst:301
msgid "Class reference (BBCode)"
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:299
#: ../../docs/community/contributing/editor_and_docs_localization.rst:303
msgid "The class reference is documented in the main Godot repository using XML files, and with BBCode-like markup for styling and internal references."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:302
#: ../../docs/community/contributing/editor_and_docs_localization.rst:306
msgid "Some of the tags used are from the original BBCode (e.g. ``[b]Bold[/b]`` and ``[i]Italics[/i]``), while others are Godot-specific and used for advanced features such as inline code (e.g. ``[code]true[/code]``), linking to another class (e.g. ``[Node2D]``) or to a property in a given class (e.g. ``[member Node2D.position]``), or for multiline code blocks. Example::"
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:314
#: ../../docs/community/contributing/editor_and_docs_localization.rst:318
msgid "In the above example, ``[code]name[/code]``, ``[code]alpha[/code]``, and ``[Color]`` should *not* be translated, as they refer respectively to argument names and a class of the Godot API. Similarly, the contents of the ``[codeblock]`` should not be translated, as ``ColorN`` is a function of the Godot API and ``\"red\"`` is one of the named colors it supports. At most, you can translate the name of the variable which holds the result (``red = ...``)."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:321
#: ../../docs/community/contributing/editor_and_docs_localization.rst:325
msgid "Note also that in the XML, each line is a paragraph, so you should not add line breaks if they are not part of the original translation."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:326
msgid "See our documentation for class reference writers for the :ref:`list of BBCode-like tags <doc_updating_the_class_reference_bbcode>` which are used throughout the class reference."
#: ../../docs/community/contributing/editor_and_docs_localization.rst:330
msgid "See our documentation for class reference writers for the :ref:`list of BBCode-like tags <doc_class_reference_writing_guidelines_bbcode>` which are used throughout the class reference."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:331
#: ../../docs/community/contributing/editor_and_docs_localization.rst:335
msgid "Offline translation and testing"
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:333
#: ../../docs/community/contributing/editor_and_docs_localization.rst:337
msgid "While we advise using the Weblate interface to write translations, you also have the possibility to download the PO file locally to translate it with your preferred PO editing application, such as `Poedit <https://poedit.net/>`__ or `Lokalize <https://userbase.kde.org/Lokalize>`__."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:338
#: ../../docs/community/contributing/editor_and_docs_localization.rst:342
msgid "To download the PO file locally, browse to the translation overview for your language, and select the first item in the \"Files\" menu:"
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:343
#: ../../docs/community/contributing/editor_and_docs_localization.rst:347
msgid "Once you are done with a series of edits, use the \"Upload translation\" item in that same menu and select your file. Choose \"Add as translation\" for the file upload mode."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:349
#: ../../docs/community/contributing/editor_and_docs_localization.rst:353
msgid "If a significant amount of time has passed between your download of the PO file and the upload of the edited version, there is a risk to overwrite the translations authored by other contributors in the meantime. This is why we advise to use the online interface so that you always work on the latest version."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:355
#: ../../docs/community/contributing/editor_and_docs_localization.rst:359
msgid "If you want to test changes locally (especially for the editor translation), you can use the downloaded PO file and :ref:`compile Godot from source <toc-devel-compiling>`."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:358
#: ../../docs/community/contributing/editor_and_docs_localization.rst:362
msgid "Rename the editor translation PO file to ``<lang>.po`` (e.g. ``eo.po`` for Esperanto) and place it in the ``editor/translations/`` folder (`GitHub <https://github.com/godotengine/godot/tree/master/editor/translations>`__)."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:362
#: ../../docs/community/contributing/editor_and_docs_localization.rst:366
msgid "You can also test class reference changes the same way by renaming the PO file similarly and placing it in the ``doc/translations/`` folder (`GitHub <https://github.com/godotengine/godot/tree/master/doc/translations>`__)."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:367
#: ../../docs/community/contributing/editor_and_docs_localization.rst:371
msgid "Localizing documentation images"
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:369
#: ../../docs/community/contributing/editor_and_docs_localization.rst:373
msgid "The online documentation includes many images, which can be screenshots of the Godot editor, custom-made graphs, of any other kind of visual content. Some of it includes text and might thus be relevant to localize in your language."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:373
#: ../../docs/community/contributing/editor_and_docs_localization.rst:377
msgid "This part is not handled via Weblate, but directly on the `godot-docs-l10n <https://github.com/godotengine/godot-docs-l10n>`_ Git repository where the documentation translations are synced from Weblate."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:379
#: ../../docs/community/contributing/editor_and_docs_localization.rst:383
msgid "The workflow is not the most straightforward and requires some knowledge of Git. We plan to work on a simplified Web tool which could be used to manage image localization in a convenient way, abstracting away these steps."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:383
#: ../../docs/community/contributing/editor_and_docs_localization.rst:387
msgid "To translate an image, you should first locate it in the original English documentation. To do so, browse the relevant page in the docs, e.g. :ref:`doc_intro_to_the_editor_interface`. Click the \"Edit on GitHub\" link in the top right corner:"
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:390
#: ../../docs/community/contributing/editor_and_docs_localization.rst:394
msgid "On GitHub, click on the image you want to translate. If relevant, click on \"Download\" to download it locally and edit it with an image edition tool. Note the full path to the image as it will be needed further down (here ``getting_started/step_by_step/img/project_manager_first_open.png``)."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:397
#: ../../docs/community/contributing/editor_and_docs_localization.rst:401
msgid "Create your localized version of the image, either by editing the English one, or by taking a screenshot of the editor with your language, if it's an editor screenshot. Some images may also have source files available in SVG format, so you can browse the ``img/`` folder which contains them to check for that."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:402
#: ../../docs/community/contributing/editor_and_docs_localization.rst:406
msgid "Name your localized image like the original one, but with the language code added before the extension, e.g. ``project_manager_first_open.png`` would become ``project_manager_first_open.fr.png`` for the French localization."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:406
#: ../../docs/community/contributing/editor_and_docs_localization.rst:410
msgid "Finally, on godot-docs-l10n_, recreate the same folder structure as for the original image in the ``images`` subfolder (`GitHub <https://github.com/godotengine/godot-docs-l10n/tree/master/images>`_), and place your translated image there. In our example, the end result should be ``images/getting_started/step_by_step/img/project_manager_first_open.fr.png``."
msgstr ""
#: ../../docs/community/contributing/editor_and_docs_localization.rst:412
#: ../../docs/community/contributing/editor_and_docs_localization.rst:416
msgid "Repeat this for other images and :ref:`make a Pull Request <doc_pr_workflow>`."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,3 +19,79 @@ msgstr ""
#: ../../docs/community/contributing/index.rst:2
msgid "Contributing"
msgstr ""
#: ../../docs/community/contributing/index.rst:4
msgid "Everyone is most welcome to contribute to Godot. Here are some ways in which you can contribute to the project:"
msgstr ""
#: ../../docs/community/contributing/index.rst:7
msgid "Improving the engine by fixing bugs, coding new features, or refining existing ones."
msgstr ""
#: ../../docs/community/contributing/index.rst:8
msgid "Writing or proofreading documentation. You can contribute both to this reference manual or the code reference."
msgstr ""
#: ../../docs/community/contributing/index.rst:10
msgid "Translating the editor or documentation from English to other languages."
msgstr ""
#: ../../docs/community/contributing/index.rst:11
msgid "Reporting issues or `writing detailed proposals <https://github.com/godotengine/godot-proposals/>`__."
msgstr ""
#: ../../docs/community/contributing/index.rst:15
msgid "Getting started"
msgstr ""
#: ../../docs/community/contributing/index.rst:17
msgid "You would like to contribute but you don't know how or what to do? You can get answers below."
msgstr ""
#: ../../docs/community/contributing/index.rst:29
msgid "Contributing to the engine"
msgstr ""
#: ../../docs/community/contributing/index.rst:31
msgid "The guides below explain how to contribute to the engine's core. You will learn about the code style, the contribution workflow, and more."
msgstr ""
#: ../../docs/community/contributing/index.rst:49
msgid "Writing documentation"
msgstr ""
#: ../../docs/community/contributing/index.rst:51
msgid "We always need help to improve the documentation, be it the class reference or the manual. Below, you can find our content and writing guidelines and concrete guides to make changes to the documentation."
msgstr ""
#: ../../docs/community/contributing/index.rst:56
msgid "Guidelines"
msgstr ""
#: ../../docs/community/contributing/index.rst:58
msgid "Here are the principles and guidelines we strive to follow to write accessible documentation."
msgstr ""
#: ../../docs/community/contributing/index.rst:70
msgid "Writing the manual"
msgstr ""
#: ../../docs/community/contributing/index.rst:80
msgid "Class reference guides"
msgstr ""
#: ../../docs/community/contributing/index.rst:82
msgid "The pages below focus on the class reference."
msgstr ""
#: ../../docs/community/contributing/index.rst:84
msgid "As the reference is included in the Godot editor, its source files are part of the `godot repository <https://github.com/godotengine/godot>`_. We use XML files to write it, so the process to contribute to the class reference differs from writing the online manual."
msgstr ""
#: ../../docs/community/contributing/index.rst:99
msgid "Translating the documentation"
msgstr ""
#: ../../docs/community/contributing/index.rst:101
msgid "The community is always working hard on making Godot and its documentation available to more people. Localizing the documentation is a colossal and ongoing effort you can be part of."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -49,345 +49,345 @@ msgid "The Git version control system is the tool used to keep track of successi
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:46
msgid "The first sections of Git's \"Book\" are a good introduction to the tool's philosophy and the various commands you need to master in your daily workflow. You can read them online on the `Git SCM <https://git-scm.com/book/en/v2>`_ website."
msgid "The first sections of Git's \"Book\" are a good introduction to the tool's philosophy and the various commands you need to master in your daily workflow. You can read them online on the `Git SCM <https://git-scm.com/book/en/v2>`_ website. You can also try out `GitHub's interactive guide <https://try.github.io/>`__."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:51
#: ../../docs/community/contributing/pr_workflow.rst:52
msgid "The branches on the Git repository are organized as follows:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:53
#: ../../docs/community/contributing/pr_workflow.rst:54
msgid "The ``master`` branch is where the development of the next major version occurs. As a development branch, it can be unstable and is not meant for use in production. This is where PRs should be done in priority."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:57
#: ../../docs/community/contributing/pr_workflow.rst:58
msgid "The stable branches are named after their version, e.g. ``3.1`` and ``2.1``. They are used to backport bugfixes and enhancements from the ``master`` branch to the currently maintained stable release (e.g. 3.1.2 or 2.1.6). As a rule of thumb, the last stable branch is maintained until the next major version (e.g. the ``3.0`` branch was maintained until the release of Godot 3.1). If you want to make PRs against a maintained stable branch, please check first if your changes are also relevant for the ``master`` branch, and if so make the PR for the ``master`` branch in priority. Release managers can then cherry-pick the fix to a stable branch if relevant."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:67
#: ../../docs/community/contributing/pr_workflow.rst:68
msgid "There might occasionally be feature branches, usually meant to be merged into the ``master`` branch at some time."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:71
#: ../../docs/community/contributing/pr_workflow.rst:72
msgid "Forking and cloning"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:73
#: ../../docs/community/contributing/pr_workflow.rst:74
msgid "The first step is to *fork* the `godotengine/godot <https://github.com/godotengine/godot>`_ repository on GitHub. To do so, you will need to have a GitHub account and to be logged in. In the top right corner of the repository's GitHub page, you should see the \"Fork\" button as shown below:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:80
#: ../../docs/community/contributing/pr_workflow.rst:81
msgid "Click it, and after a while you should be redirected to your own fork of the Godot repo, with your GitHub username as namespace:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:85
#: ../../docs/community/contributing/pr_workflow.rst:86
msgid "You can then *clone* your fork, i.e. create a local copy of the online repository (in Git speak, the *origin remote*). If you haven't already, download Git from `its website <https://git-scm.com>`_ if you're using Windows or macOS, or install it through your package manager if you're using Linux."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:90
#: ../../docs/community/contributing/pr_workflow.rst:91
msgid "If you are on Windows, open Git Bash to type commands. macOS and Linux users can use their respective terminals."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:93
#: ../../docs/community/contributing/pr_workflow.rst:94
msgid "To clone your fork from GitHub, use the following command:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:99
#: ../../docs/community/contributing/pr_workflow.rst:100
msgid "In our examples, the \"$\" character denotes the command line prompt on typical UNIX shells. It is not part of the command and should not be typed."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:103
#: ../../docs/community/contributing/pr_workflow.rst:104
msgid "After a little while, you should have a ``godot`` directory in your current working directory. Move into it using the ``cd`` command:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:110
#: ../../docs/community/contributing/pr_workflow.rst:111
msgid "We will start by setting up a reference to the original repository that we forked:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:117
#: ../../docs/community/contributing/pr_workflow.rst:118
msgid "This will create a reference named ``upstream`` pointing to the original ``godotengine/godot`` repository. This will be useful when you want to pull new commits from its ``master`` branch to update your fork. You have another remote reference named ``origin``, which points to your fork (``USERNAME/godot``)."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:122
#: ../../docs/community/contributing/pr_workflow.rst:123
msgid "You only need to do the above steps once, as long as you keep that local ``godot`` folder (which you can move around if you want, the relevant metadata is hidden in its ``.git`` subfolder)."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:126
#: ../../docs/community/contributing/pr_workflow.rst:127
msgid "*Branch it, pull it, code it, stage it, commit, push it, rebase it... technologic.*"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:129
#: ../../docs/community/contributing/pr_workflow.rst:130
msgid "This bad take on Daft Punk's *Technologic* shows the general conception Git beginners have of its workflow: lots of strange commands to learn by copy and paste, hoping they will work as expected. And that's actually not a bad way to learn, as long as you're curious and don't hesitate to question your search engine when lost, so we will give you the basic commands to know when working in Git."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:137
#: ../../docs/community/contributing/pr_workflow.rst:138
msgid "In the following, we will assume as an example that you want to implement a feature in Godot's project manager, which is coded in the ``editor/project_manager.cpp`` file."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:142
#: ../../docs/community/contributing/pr_workflow.rst:143
msgid "Branching"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:144
#: ../../docs/community/contributing/pr_workflow.rst:145
msgid "By default, the ``git clone`` should have put you on the ``master`` branch of your fork (``origin``). To start your own feature development, we will create a feature branch:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:156
#: ../../docs/community/contributing/pr_workflow.rst:157
msgid "This command is equivalent:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:163
#: ../../docs/community/contributing/pr_workflow.rst:164
msgid "If you want to go back to the ``master`` branch, you'd use:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:169
#: ../../docs/community/contributing/pr_workflow.rst:170
msgid "You can see which branch you are currently on with the ``git branch`` command:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:179
#: ../../docs/community/contributing/pr_workflow.rst:180
msgid "Be sure to always go back to the ``master`` branch before creating a new branch, as your current branch will be used as the base for the new one. Alternatively, you can specify a custom base branch after the new branch's name:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:188
#: ../../docs/community/contributing/pr_workflow.rst:189
msgid "Updating your branch"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:190
#: ../../docs/community/contributing/pr_workflow.rst:191
msgid "This would not be needed the first time (just after you forked the upstream repository). However, the next time you want to work on something, you will notice that your fork's ``master`` is several commits behind the upstream ``master`` branch: pull requests from other contributors would have been merged in the meantime."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:196
#: ../../docs/community/contributing/pr_workflow.rst:197
msgid "To ensure there won't be conflicts between the feature you develop and the current upstream ``master`` branch, you will have to update your branch by *pulling* the upstream branch."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:204
#: ../../docs/community/contributing/pr_workflow.rst:205
msgid "The ``--rebase`` argument will ensure that any local changes that you committed will be re-applied *on top* of the pulled branch, which is usually what we want in our PR workflow. This way, when you open a pull request, your own commits will be the only difference with the upstream ``master`` branch."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:209
#: ../../docs/community/contributing/pr_workflow.rst:210
msgid "While rebasing, conflicts may arise if your commits modified code that has been changed in the upstream branch in the meantime. If that happens, Git will stop at the conflicting commit and will ask you to resolve the conflicts. You can do so with any text editor, then stage the changes (more on that later), and proceed with ``git rebase --continue``. Repeat the operation if later commits have conflicts too, until the rebase operation completes."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:216
#: ../../docs/community/contributing/pr_workflow.rst:217
msgid "If you're unsure about what is going on during a rebase and you panic (no worry, we all do the first few times), you can abort the rebase with ``git rebase --abort``. You will then be back to the original state of your branch before calling ``git pull --rebase``."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:221
#: ../../docs/community/contributing/pr_workflow.rst:222
msgid "If you omit the ``--rebase`` argument, you will instead create a merge commit which tells Git what to make of the two distinct branches. If any conflicts arise, they would be resolved all at once via this merge commit."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:225
#: ../../docs/community/contributing/pr_workflow.rst:226
msgid "While this is a valid workflow and the default behavior of ``git pull``, merge commits within PRs are frowned upon in our PR workflow. We only use them when merging PRs into the upstream branch."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:229
#: ../../docs/community/contributing/pr_workflow.rst:230
msgid "The philosophy is that a PR should represent the final stage of the changes made to the codebase, and we are not interested in mistakes and fixes that would have been done in intermediate stages before merging. Git gives us great tools to \"rewrite the history\" and make it as if we got things right the first time, and we're happy to use it to ensure that changes are easy to review and understand long after they have been merged."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:236
#: ../../docs/community/contributing/pr_workflow.rst:237
msgid "If you have already created a merge commit without using ``rebase``, or have made any other changes that have resulted in undesired history, the best option is to use an *interactive rebase* on the upstream branch. See the :ref:`dedicated section <doc_pr_workflow_rebase>` for instructions."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:241
#: ../../docs/community/contributing/pr_workflow.rst:242
msgid "If at any time you want to *reset* a local branch to a given commit or branch, you can do so with ``git reset --hard <commit ID>`` or ``git reset --hard <remote>/<branch>`` (e.g. ``git reset --hard upstream/master``)."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:245
#: ../../docs/community/contributing/pr_workflow.rst:246
msgid "Be warned that this will remove any changes that you might have committed in this branch. If you ever lose commits by mistake, use the ``git reflog`` command to find the commit ID of the previous state that you would like to restore, and use it as argument of ``git reset --hard`` to go back to that state."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:251
#: ../../docs/community/contributing/pr_workflow.rst:252
msgid "Making changes"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:253
#: ../../docs/community/contributing/pr_workflow.rst:254
msgid "You would then do your changes to our example's ``editor/project_manager.cpp`` file with your usual development environment (text editor, IDE, etc.)."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:257
#: ../../docs/community/contributing/pr_workflow.rst:258
msgid "By default, those changes are *unstaged*. The staging area is a layer between your working directory (where you make your modifications) and the local Git repository (the commits and all the metadata in the ``.git`` folder). To bring changes from the working directory to the Git repository, you need to *stage* them with the ``git add`` command, and then to commit them with the ``git commit`` command."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:264
#: ../../docs/community/contributing/pr_workflow.rst:265
msgid "There are various commands you should know to review your current work, before staging it, while it is staged, and after it has been committed."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:267
#: ../../docs/community/contributing/pr_workflow.rst:268
msgid "``git diff`` will show you the current unstaged changes, i.e. the differences between your working directory and the staging area."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:269
#: ../../docs/community/contributing/pr_workflow.rst:270
msgid "``git checkout -- <files>`` will undo the unstaged changes to the given files."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:271
#: ../../docs/community/contributing/pr_workflow.rst:272
msgid "``git add <files>`` will *stage* the changes on the listed files."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:272
#: ../../docs/community/contributing/pr_workflow.rst:273
msgid "``git diff --staged`` will show the current staged changes, i.e. the differences between the staging area and the last commit."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:274
#: ../../docs/community/contributing/pr_workflow.rst:275
msgid "``git reset HEAD <files>`` will *unstage* changes to the listed files."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:275
#: ../../docs/community/contributing/pr_workflow.rst:276
msgid "``git status`` will show you what are the currently staged and unstaged modifications."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:277
#: ../../docs/community/contributing/pr_workflow.rst:278
msgid "``git commit`` will commit the staged files. It will open a text editor (you can define the one you want to use with the ``GIT_EDITOR`` environment variable or the ``core.editor`` setting in your Git configuration) to let you write a commit log. You can use ``git commit -m \"Cool commit log\"`` to write the log directly."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:282
#: ../../docs/community/contributing/pr_workflow.rst:283
msgid "``git commit --amend`` lets you amend the last commit with your currently staged changes (added with ``git add``). This is the best option if you want to fix a mistake in the last commit (bug, typo, style issue, etc.)."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:285
#: ../../docs/community/contributing/pr_workflow.rst:286
msgid "``git log`` will show you the last commits of your current branch. If you did local commits, they should be shown at the top."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:287
#: ../../docs/community/contributing/pr_workflow.rst:288
msgid "``git show`` will show you the changes of the last commit. You can also specify a commit hash to see the changes for that commit."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:290
#: ../../docs/community/contributing/pr_workflow.rst:291
msgid "That's a lot to memorize! Don't worry, just check this cheat sheet when you need to make changes, and learn by doing."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:293
#: ../../docs/community/contributing/pr_workflow.rst:294
msgid "Here's how the shell history could look like on our example:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:325
#: ../../docs/community/contributing/pr_workflow.rst:326
msgid "With this, we should have two new commits in our ``better-project-manager`` branch which were not in the ``master`` branch. They are still only local though, the remote fork does not know about them, nor does the upstream repo."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:330
#: ../../docs/community/contributing/pr_workflow.rst:331
msgid "Pushing changes to a remote"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:332
#: ../../docs/community/contributing/pr_workflow.rst:333
msgid "That's where ``git push`` will come into play. In Git, a commit is always done in the local repository (unlike Subversion where a commit will modify the remote repository directly). You need to *push* the new commits to a remote branch to share them with the world. The syntax for this is:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:341
#: ../../docs/community/contributing/pr_workflow.rst:342
msgid "The part about the remote branch can be omitted if you want it to have the same name as the local branch, which is our case in this example, so we will do:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:349
#: ../../docs/community/contributing/pr_workflow.rst:350
msgid "Git will ask you for your username and password, and the changes will be sent to your remote. If you check the fork's page on GitHub, you should see a new branch with your added commits."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:354
#: ../../docs/community/contributing/pr_workflow.rst:355
msgid "Issuing a pull request"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:356
#: ../../docs/community/contributing/pr_workflow.rst:357
msgid "When you load your fork's branch on GitHub, you should see a line saying *\"This branch is 2 commits ahead of godotengine:master.\"* (and potentially some commits behind, if your ``master`` branch was out of sync with the upstream ``master`` branch)."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:363
msgid "On that line, there is a \"Pull request\" link. Clicking it will open a form that will let you issue a pull request on the ``godotengine/godot`` upstream repository. It should show you your two commits, and state \"Able to merge\". If not (e.g. it has way more commits, or says there are merge conflicts), don't create the PR, something went wrong. Go to IRC and ask for support :)"
#: ../../docs/community/contributing/pr_workflow.rst:364
msgid "On that line, there is a \"Pull request\" link. Clicking it will open a form that will let you issue a pull request on the ``godotengine/godot`` upstream repository. It should show you your two commits, and state \"Able to merge\". If not (e.g. it has way more commits, or says there are merge conflicts), don't create the PR yet, something went wrong. Go to our `Contributors Chat <https://chat.godotengine.org/>`_ and ask for support :)"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:369
#: ../../docs/community/contributing/pr_workflow.rst:371
msgid "Use an explicit title for the PR and put the necessary details in the comment area. You can drag and drop screenshots, GIFs or zipped projects if relevant, to showcase what your work implements. Click \"Create a pull request\", and tadaa!"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:375
#: ../../docs/community/contributing/pr_workflow.rst:377
msgid "Modifying a pull request"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:377
#: ../../docs/community/contributing/pr_workflow.rst:379
msgid "While it is reviewed by other contributors, you will often need to make changes to your yet-unmerged PR, either because contributors requested them, or because you found issues yourself while testing."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:381
#: ../../docs/community/contributing/pr_workflow.rst:383
msgid "The good news is that you can modify a pull request simply by acting on the branch you made the pull request from. You can e.g. make a new commit on that branch, push it to your fork, and the PR will be updated automatically:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:396
#: ../../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:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:426
#: ../../docs/community/contributing/pr_workflow.rst:428
msgid "The interactive rebase"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:428
#: ../../docs/community/contributing/pr_workflow.rst:430
msgid "If you didn't follow the above steps closely to *amend* changes into a commit instead of creating fixup commits, or if you authored your changes without being aware of our workflow and Git usage tips, reviewers might request of your to *rebase* your branch to *squash* some or all of the commits into one."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:433
#: ../../docs/community/contributing/pr_workflow.rst:435
msgid "Indeed, if some commits have been made following reviews to fix bugs, typos, etc. in the original commit, they are not relevant to a future changelog reader who would want to know what happened in the Godot codebase, or when and how a given file was last modified."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:438
#: ../../docs/community/contributing/pr_workflow.rst:440
msgid "To squash those extraneous commits into the main one, we will have to *rewrite history*. Right, we have that power. You may read that it's a bad practice, and it's true when it comes to branches of the upstream repo. But in your fork, you can do whatever you want, and everything is allowed to get neat PRs :)"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:443
#: ../../docs/community/contributing/pr_workflow.rst:445
msgid "We will use the *interactive rebase* ``git rebase -i`` to do this. This command takes a commit ID or a branch name as argument, and will let you modify all commits between that commit/branch and the last one in your working branch, the so-called ``HEAD``."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:448
#: ../../docs/community/contributing/pr_workflow.rst:450
msgid "While you can give any commit ID to ``git rebase -i`` and review everything in between, the most common and convenient workflow involves rebasing on the *upstream ``master`` branch*, which you can do with:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:456
#: ../../docs/community/contributing/pr_workflow.rst:458
msgid "Referencing branches in Git is a bit tricky due to the distinction between remote and local branches. Here, ``upstream/master`` (with a `/`) is a local branch which has been pulled from the ``upstream`` remote's ``master`` branch."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:461
#: ../../docs/community/contributing/pr_workflow.rst:463
msgid "Interactive rebases can only be done on local branches, so the `/` is important here. As the upstream remote changes frequently, your local ``upstream/master`` branch may become outdated, so you can update it with ``git fetch upstream master``. Contrarily to ``git pull --rebase upstream master`` which would update your currently checked out branch, ``fetch`` will only update the ``upstream/master`` reference (which is distinct from your local ``master`` branch... yes it's confusing, but you'll become familiar with this little by little)."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:471
msgid "This will open a text editor (``vi`` by default, see `Git docs <https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#_core_editor>__` to configure your favorite one) with something which may look like this:"
#: ../../docs/community/contributing/pr_workflow.rst:473
msgid "This will open a text editor (``vi`` by default, see `Git docs <https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#_core_editor>`_ to configure your favorite one) with something which may look like this:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:480
#: ../../docs/community/contributing/pr_workflow.rst:482
msgid "The editor will also show instructions regarding how you can act on those commits. In particular, it should tell you that \"pick\" means to use that commit (do nothing), and that \"squash\" and \"fixup\" can be used to *meld* the commit in its parent commit. The difference between \"squash\" and \"fixup\" is that \"fixup\" will discard the commit log from the squashed commit. In our example, we are not interested in keeping the log of the \"Fix a typo\" commit, so we use:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:493
#: ../../docs/community/contributing/pr_workflow.rst:495
msgid "Upon saving and quitting the editor, the rebase will occur. The second commit will be melded into the first one, and ``git log`` and ``git show`` should now confirm that you have only one commit with the changes from both previous commits."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:498
#: ../../docs/community/contributing/pr_workflow.rst:500
msgid "But! You rewrote the history, and now your local and remote branches have diverged. Indeed, commit 1b4aad7 in the above example will have changed, and therefore got a new commit hash. If you try to push to your remote branch, it will raise an error:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:512
#: ../../docs/community/contributing/pr_workflow.rst:514
msgid "This is a sane behavior, Git will not let you push changes that would override remote content. But that's actually what we want to do here, so we will have to *force* it:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:520
#: ../../docs/community/contributing/pr_workflow.rst:522
msgid "And tadaa! Git will happily *replace* your remote branch with what you had locally (so make sure that's what you wanted, using ``git log``). This will also update the PR accordingly."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:525
#: ../../docs/community/contributing/pr_workflow.rst:527
msgid "Deleting a Git branch"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:527
#: ../../docs/community/contributing/pr_workflow.rst:529
msgid "After your pull request gets merged, there's one last thing you should do: delete your Git branch for the PR. There won't be issues if you don't delete your branch, but it's good practice to do so. You'll need to do this twice, once for the local branch and another for the remote branch on GitHub."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:532
#: ../../docs/community/contributing/pr_workflow.rst:534
msgid "To delete our better project manager branch locally, use this command:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:538
#: ../../docs/community/contributing/pr_workflow.rst:540
msgid "Alternatively, if the branch hadn't been merged yet and we wanted to delete it anyway, instead of ``-d`` you would use ``-D``."
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:541
#: ../../docs/community/contributing/pr_workflow.rst:543
msgid "Next, to delete the remote branch on GitHub use this command:"
msgstr ""
#: ../../docs/community/contributing/pr_workflow.rst:547
#: ../../docs/community/contributing/pr_workflow.rst:549
msgid "You can also delete the remote branch from the GitHub PR itself, a button should appear once it has been merged or closed."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -21,505 +21,73 @@ msgid "Contributing to the class reference"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:8
msgid "This guide also is available as a `video tutorial on YouTube <https://www.youtube.com/watch?v=5jeHXxeX-JY>`_."
msgid "The class reference is available online in the :ref:`classes <toc-class-ref>` section of the documentation and in the Godot editor, from the help menu."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:10
msgid "Godot ships with many nodes and singletons to help you develop your games. Each is a class, documented in the :ref:`class reference <toc-class-ref>`. This reference is essential for anyone learning the engine: it is available both online and in the engine."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:13
msgid "But it's incomplete. Some methods, variables and signals lack descriptions. Others changed with recent releases and need updates. The developers can't write the entire reference on their own. Godot needs you, and all of us, to contribute."
#: ../../docs/community/contributing/updating_the_class_reference.rst:11
msgid "In the class reference, some methods, variables, and signals lack descriptions. Others changed with recent releases and need updates. The developers can't write the entire reference on their own. Godot needs you, and all of us, to contribute."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:16
msgid "**Important:** If you are planning to make larger changes or a more substantial contribution, it is usually a good idea to create an issue (or a comment in an existing one) to let others know so they don't start working on the same thing too."
msgid "**Important:** If you plan to make large changes, you should create an issue on the `godot-docs repository <https://github.com/godotengine/godot-docs/>`_ or comment on an existing issue. Doing so lets others know you're already taking care of a given class."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:21
msgid "Not sure where to start contributing? Take a look at the current class reference completion status `here <https://godotengine.github.io/doc-status/>`__."
#: ../../docs/community/contributing/updating_the_class_reference.rst:23
msgid "You can find the writing guidelines for the class reference :ref:`here <doc_class_reference_writing_guidelines>`."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:25
msgid "How to contribute"
msgid "For details on Git usage and the pull request workflow, please refer to the :ref:`doc_pr_workflow` page."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:27
msgid "The class reference lies in the following XML files, in Godot's GitHub repository: `doc/classes/ <https://github.com/godotengine/godot/tree/master/doc/classes>`_."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:29
msgid "There are 5 steps to update the class reference (full guide below):"
#: ../../docs/community/contributing/updating_the_class_reference.rst:28
msgid "If you want to translate the class reference from English to another language, see :ref:`doc_editor_and_docs_localization`."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:31
msgid "Fork `Godot's repository <https://github.com/godotengine/godot>`_"
msgid "This guide is also available as a `video tutorial on YouTube <https://www.youtube.com/watch?v=5jeHXxeX-JY>`_."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:32
msgid "Clone your fork on your computer"
#: ../../docs/community/contributing/updating_the_class_reference.rst:36
msgid "Not sure which class to contribute to? Take a look at the class reference's completion status `here <https://godotengine.github.io/doc-status/>`_."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:33
msgid "Edit the class file in ``doc/classes/`` to write documentation"
#: ../../docs/community/contributing/updating_the_class_reference.rst:39
msgid "You can find the source files for the class reference in Godot's GitHub repository: `doc/classes/ <https://github.com/godotengine/godot/tree/master/doc/classes>`_."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:34
msgid "Commit your changes and push them to your fork"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:35
msgid "Make a pull request on the Godot repository"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:37
msgid "Always use these XML files to edit the API reference. Do not edit the generated .rst files :ref:`in the online documentation <toc-class-ref>`, hosted in the `godot-docs <https://github.com/godotengine/godot-docs>`_ repository."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:40
msgid "Get started with GitHub"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:42
msgid "If you're new to Git and GitHub, this guide will help you get started. You'll learn to:"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:44
msgid "Fork and clone Godot's repository"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:45
msgid "Keep your fork up to date with other contributors"
#: ../../docs/community/contributing/updating_the_class_reference.rst:43
msgid "For some modules in the engine's source code, you'll find the XML files in the ``modules/<module_name>/doc_classes/`` directory instead."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:46
msgid "Create a pull request so your improvements end in the official docs"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:48
msgid "If you're new to Git, the version control system Godot uses, go through `GitHub's interactive guide <https://try.github.io/levels/1/challenges/1>`_. You'll learn some essential vocabulary and get a sense for the tool."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:51
msgid "Fork Godot"
msgid "Always edit the API reference through these source XML files. Do not edit the generated ``.rst`` files :ref:`in the online documentation <toc-class-ref>`, hosted in the `godot-docs <https://github.com/godotengine/godot-docs>`_ repository."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:53
msgid "Fork the Godot Engine into a GitHub repository of your own."
msgid "Unless you make minor changes, like fixing a typo, we do not recommend using the GitHub web editor to edit the class reference's XML."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:55
msgid "Clone the repository on your computer:"
msgid "It lacks features to edit XML well, like keeping indentations consistent, and it does not allow amending commits based on reviews."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:61
msgid "Create a new branch to make your changes. It makes it a lot easier to sync your improvements with other docs writers. It's also easier to clean up your repository if you run into any issues with Git."
#: ../../docs/community/contributing/updating_the_class_reference.rst:57
msgid "Also, it doesn't allow you to test your changes in the engine or with validation scripts as described in :ref:`doc_class_reference_writing_guidelines_editing_xml`."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:67
msgid "The new branch is the same as your master branch, until you start to write API docs. In the ``doc/`` folder, you'll find the class reference."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:70
msgid "How to keep your local clone up-to-date"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:72
msgid "Other writers contribute to Godot's documentation. Your local repository will fall behind it, and you'll have to synchronize it. Especially if other contributors update the class reference while you work on it."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:74
msgid "First add an ``upstream`` git *remote* to work with. Remotes are links to online repositories you can download new files from."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:80
msgid "You can check the list of all remote servers with:"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:86
msgid "You should have two: ``origin``, your fork on GitHub that Git adds by default, and ``upstream``, that you just added:"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:96
msgid "Each time you want to sync your branch to the state of the upstream repository, enter:"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:102
msgid "This command will first ``fetch``, or download the latest version of the Godot repository. Then, it will reapply your local changes on top."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:104
msgid "If you made changes you don't want to keep in your local branch, use the following commands instead:"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:111
msgid "**Warning:** The above command will reset your branch to the state of the ``upstream master`` branch. It will discard all local changes. Make sure to only run this *before* you make important changes."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:113
msgid "Another option is to delete the branch you're working on, synchronize the master branch with the Godot repository, and create a new branch:"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:122
msgid "If you're feeling lost by now, come to our `IRC channels <https://webchat.freenode.net/?channels=#godotengine>`_ and ask for help. Experienced Git users will give you a hand."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:125
#: ../../docs/community/contributing/updating_the_class_reference.rst:62
msgid "Updating the documentation template"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:127
msgid "When classes are modified in the source code, the documentation template might become outdated. To make sure that you are editing an up-to-date version, you first need to compile Godot (you can follow the :ref:`doc_introduction_to_the_buildsystem` page), and then run the following command (assuming 64-bit Linux):"
#: ../../docs/community/contributing/updating_the_class_reference.rst:64
msgid "When you create a new class or modify the engine's API, you need to re-generate the XML files in ``doc/classes/``."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:133
msgid "The XML files in doc/classes should then be up-to-date with current Godot Engine features. You can then check what changed using the ``git diff`` command. If there are changes to other classes than the one you are planning to document, please commit those changes first before starting to edit the template:"
#: ../../docs/community/contributing/updating_the_class_reference.rst:66
msgid "To do so, you first need to compile Godot. See the :ref:`doc_introduction_to_the_buildsystem` page to learn how. Then, execute the compiled Godot binary from the Godot root directory with the ``--doctool`` option. For example, if you're on 64-bit Linux, the command is::"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:140
msgid "You are now ready to edit this file to add stuff."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:142
msgid "**Note:** If this has been done recently by another contributor, you don't forcefully need to go through these steps (unless you know that the class you plan to edit *has* been modified recently)."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:145
msgid "Push and request a pull of your changes"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:147
msgid "Once your modifications are finished, push your changes on your GitHub repository:"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:156
msgid "When it's done, you can ask for a Pull Request via the GitHub UI of your Godot fork."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:160
msgid "Although you can edit files on GitHub, it's not recommended. As hundreds of contributors work on Godot, the Git history must stay clean. Each commit should bundle all related improvements you make to the class reference, a new feature, bug fixes... When you edit from GitHub, it will create a new branch and a Pull Request every time you want to save it. If a few days pass before your changes get a review, you won't be able to update to the latest version of the repository cleanly. Also, it's harder to keep clean indents from GitHub. And they're very important in the docs."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:162
msgid "TL;DR: If you don't know what you're doing exactly, do not edit files from GitHub."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:165
msgid "How to edit class XML"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:167
msgid "Edit the file for your chosen class in ``doc/classes/`` to update the class reference. The folder contains an XML file for each class. The XML lists the constants and methods you'll find in the class reference. Godot generates and updates the XML automatically."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:169
msgid "Edit it using your favorite text editor. If you use a code editor, make sure that it doesn't change the indent style: tabs for the XML, and 4 spaces inside BBCode-style blocks. More on that below."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:171
msgid "If you need to check that the modifications you've made are correct in the generated documentation, build Godot as described :ref:`here <toc-devel-compiling>`, run the editor and open the help for the page you modified."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:174
msgid "How to write the class reference"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:176
msgid "Each class has a brief and a long description. The brief description is always at the top of the page, while the full description lies below the list of methods, variables and constants. Methods, member variables, constants and signals are in separate categories or XML nodes. For each, learn how they work in Godot's source code, and fill their <description>."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:178
msgid "Our job is to add the missing text between these marks:"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:180
msgid "<description></description>"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:181
msgid "<brief_description></brief_description>"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:182
msgid "<constant></constant>"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:183
msgid "<method></method>"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:184
msgid "<member></member>"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:185
msgid "<signal></signal>"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:187
msgid "Write in a clear and simple language. Always follow the :ref:`writing guidelines <doc_docs_writing_guidelines>` to keep your descriptions short and easy to read. **Do not leave empty lines** in the descriptions: each line in the XML file will result in a new paragraph."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:189
msgid "Here's how a class looks like in XML:"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:228
msgid "Use a code editor like Vim, Atom, Code, Notepad++ or anything similar to edit the file quickly. Use the search function to find classes fast."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:233
msgid "Improve formatting with BBCode style tags"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:235
msgid "Godot's class reference supports BBCode-like tags. They add nice formatting to the text. Here's the list of available tags:"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:238
msgid "Tag"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:238
msgid "Effect"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:238
msgid "Usage"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:238
msgid "Result"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:240
msgid "[Class]"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:240
msgid "Link a class"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:240
msgid "Move the [Sprite]."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:240
msgid "Move the :ref:`class_sprite`."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:242
msgid "[method methodname]"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:242
msgid "Link to a method in this class"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:242
msgid "Call [method hide]."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:242
#: ../../docs/community/contributing/updating_the_class_reference.rst:244
msgid "See :ref:`hide <class_spatial_method_hide>`."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:244
msgid "[method Class.methodname]"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:244
msgid "Link to another class's method"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:244
msgid "Call [method Spatial.hide]."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:246
msgid "[member membername]"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:246
msgid "Link to a member in this class"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:246
msgid "Get [member scale]."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:246
#: ../../docs/community/contributing/updating_the_class_reference.rst:248
msgid "Get :ref:`scale <class_node2d_property_scale>`."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:248
msgid "[member Class.membername]"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:248
msgid "Link to another class's member"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:248
msgid "Get [member Node2D.scale]."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:250
msgid "[signal signalname]"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:250
msgid "Link to a signal in this class"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:250
msgid "Emit [signal renamed]."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:250
#: ../../docs/community/contributing/updating_the_class_reference.rst:252
msgid "Emit :ref:`renamed <class_node_signal_renamed>`."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:252
msgid "[signal Class.signalname]"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:252
msgid "Link to another class's signal"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:252
msgid "Emit [signal Node.renamed]."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:254
msgid "[b] [/b]"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:254
msgid "Bold"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:254
msgid "Some [b]bold[/b] text."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:254
msgid "Some **bold** text."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:256
msgid "[i] [/i]"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:256
msgid "Italic"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:256
msgid "Some [i]italic[/i] text."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:256
msgid "Some *italic* text."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:258
msgid "[code] [/code]"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:258
msgid "Monospace"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:258
msgid "Some [code]monospace[/code] text."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:258
msgid "Some ``monospace`` text."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:260
msgid "[kbd] [/kbd]"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:260
msgid "Keyboard/mouse shortcut"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:260
msgid "Some [kbd]Ctrl + C[/kbd] key."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:260
msgid "Some :kbd:`Ctrl + C` key."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:262
msgid "[codeblock] [/codeblock]"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:262
msgid "Multiline preformatted block"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:262
#: ../../docs/community/contributing/updating_the_class_reference.rst:262
msgid "*See below.*"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:265
msgid "Use ``[codeblock]`` for pre-formatted code blocks. Inside ``[codeblock]``, always use **four spaces** for indentation (the parser will delete tabs). Example:"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:275
msgid "Will display as:"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:283
msgid "To denote important information, add a paragraph starting with \"[b]Note:[/b]\" at the end of the description:"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:290
msgid "To denote crucial information that could cause security issues or loss of data if not followed carefully, add a paragraph starting with \"[b]Warning:[/b]\" at the end of the description:"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:298
msgid "For deprecated properties, add a paragraph starting with \"[i]Deprecated.[/i]\". Notice the use of italics instead of bold:"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:305
msgid "In all the paragraphs described above, make sure the punctuation is part of the BBCode tags for consistency."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:309
msgid "I don't know what this method does!"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:311
msgid "No problem. Leave it behind, and list the methods you skipped when you request a pull of your changes. Another writer will take care of it."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:313
msgid "You can still have a look at the methods' implementation in Godot's source code on GitHub. Also, if you have doubts, feel free to ask on the `Q&A website <https://godotengine.org/qa/>`__ and on IRC (freenode, #godotengine)."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:317
msgid "Localization"
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:319
msgid "The documentation can be translated in any language on `Hosted Weblate <https://hosted.weblate.org/projects/godot-engine/godot-docs/>`__."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:322
msgid "Translated strings are synced manually by documentation maintainers in the `godot-docs-l10n <https://github.com/godotengine/godot-docs-l10n>`__ repository."
msgstr ""
#: ../../docs/community/contributing/updating_the_class_reference.rst:326
msgid "Languages with a good level of completion have their own localized instances of ReadTheDocs. Open an issue on the ``godot-docs-l10n`` repository if you think that a new language is complete enough to get its own instance."
#: ../../docs/community/contributing/updating_the_class_reference.rst:73
msgid "The XML files in doc/classes should then be up-to-date with current Godot Engine features. You can then check what changed using the ``git diff`` command. Please only include changes that are relevant to your work on the API in your commits. You can discard changes in other XML files using ``git checkout``."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -29,7 +29,7 @@ msgid "This means that to thrive, Godot needs as many users as possible to get i
msgstr ""
#: ../../docs/community/contributing/ways_to_contribute.rst:16
msgid "**Be part of the community.** The best way to contribute to Godot and help it become ever better is simply to use the engine and promote it by word-of-mouth, in the credits or splash screen of your games, blog posts, tutorials, videos, demos, gamedev or free software events, support on the Q&A, IRC, forums, Discord, etc. Participate! Being a user and advocate helps spread the word about our great engine, which has no marketing budget and can therefore only rely on its community to become more mainstream."
msgid "**Be part of the community.** The best way to contribute to Godot and help it become ever better is simply to use the engine and promote it by word-of-mouth, in the credits or splash screen of your games, blog posts, tutorials, videos, demos, gamedev or free software events, support on the Q&A, forums, Contributors Chat, Discord, etc. Participate! Being a user and advocate helps spread the word about our great engine, which has no marketing budget and can therefore only rely on its community to become more mainstream."
msgstr ""
#: ../../docs/community/contributing/ways_to_contribute.rst:25
@@ -133,7 +133,7 @@ msgid "Filing an issue on GitHub"
msgstr ""
#: ../../docs/community/contributing/ways_to_contribute.rst:145
msgid "Godot uses `GitHub's issue tracker <https://github.com/godotengine/godot/issues>`_ for bug reports and enhancement suggestions. You will need a GitHub account to be able to open a new issue there, and click on the \"New issue\" button."
msgid "Godot uses `GitHub's issue tracker <https://github.com/godotengine/godot/issues>`_ for bug reports and enhancement suggestions. You will need a GitHub account to be able to open a new issue there, and click on the **New issue** button."
msgstr ""
#: ../../docs/community/contributing/ways_to_contribute.rst:149
@@ -153,7 +153,7 @@ msgid "**Hardware.** Sometimes bugs are hardware-specific, i.e. they happen only
msgstr ""
#: ../../docs/community/contributing/ways_to_contribute.rst:170
msgid "**Godot version.** This is a must have. Some issues might be relevant in the current stable release, but fixed in the development branch, or the other way around. You might also be using an obsolete version of Godot and experiencing a known issue fixed in a later version, so knowing this from the start helps to speed up the diagnosis."
msgid "**Godot version.** This is a must-have. Some issues might be relevant in the current stable release, but fixed in the development branch, or the other way around. You might also be using an obsolete version of Godot and experiencing a known issue fixed in a later version, so knowing this from the start helps to speed up the diagnosis."
msgstr ""
#: ../../docs/community/contributing/ways_to_contribute.rst:176
@@ -161,7 +161,7 @@ msgid "**How to reproduce the bug.** In the majority of cases, bugs are reproduc
msgstr ""
#: ../../docs/community/contributing/ways_to_contribute.rst:187
msgid "When you click the \"New issue\" button, you should be presented with a text area prefilled with our issue template. Please try to follow it so that all issues are consistent and provide the required information."
msgid "When you click the **New issue** button, you should be presented with a text area prefilled with our issue template. Please try to follow it so that all issues are consistent and provide the required information."
msgstr ""
#: ../../docs/community/contributing/ways_to_contribute.rst:192
@@ -173,11 +173,11 @@ msgid "There are two separate resources referred to as \"documentation\" in Godo
msgstr ""
#: ../../docs/community/contributing/ways_to_contribute.rst:196
msgid "**The class reference.** This is the documentation for the complete Godot API as exposed to GDScript and the other scripting languages. It can be consulted offline, directly in Godot's code editor, or online at :ref:`Godot API <toc-class-ref>`. To contribute to the class reference, you have to edit the `doc/base/classes.xml` in Godot's Git repository, and make a pull request. See :ref:`doc_updating_the_class_reference` for more details."
msgid "**The class reference.** This is the documentation for the complete Godot API as exposed to GDScript and the other scripting languages. It can be consulted offline, directly in Godot's code editor, or online at :ref:`Godot API <toc-class-ref>`. To contribute to the class reference, you have to edit the XML file corresponding to the class and make a pull request. See :ref:`doc_updating_the_class_reference` and :ref:`doc_class_reference_writing_guidelines` for more details."
msgstr ""
#: ../../docs/community/contributing/ways_to_contribute.rst:204
msgid "**The tutorials and engine documentation and its translations.** This is the part you are reading now, which is distributed in the HTML, PDF and EPUB formats. Its contents are generated from plain text files in the reStructured Text (rst) format, to which you can contribute via pull requests on the `godot-docs <https://github.com/godotengine/godot-docs>`_ GitHub repository. See :ref:`doc_documentation_guidelines` for more details."
msgid "**The tutorials and engine documentation and its translations.** This is the part you are reading now, which is distributed in the HTML format. Its contents are generated from plain text files in the reStructured Text (rst) format, to which you can contribute via pull requests on the `godot-docs <https://github.com/godotengine/godot-docs>`_ GitHub repository. See :ref:`doc_contributing_to_the_documentation` for more details."
msgstr ""
#: ../../docs/community/contributing/ways_to_contribute.rst:212

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -61,113 +61,125 @@ msgid "`Emilio <https://www.youtube.com/channel/UC9DR22-qohBDtZ74R3FxOZg>`_ (2D,
msgstr ""
#: ../../docs/community/tutorials.rst:26
msgid "`GDQuest <https://www.youtube.com/channel/UCxboW7x0jZqFdvMdCFKTMsQ/playlists>`_ (2D and 3D, GDScript, VisualScript and C#)."
msgid "`FinePointCGI <https://www.youtube.com/channel/UCSojAWUnEUTUcdA9iJ6bryQ>`_ (2D, 3D, GDScript and C#)."
msgstr ""
#: ../../docs/community/tutorials.rst:27
msgid "`Game Development Center <https://www.youtube.com/c/GameDevelopmentCenter>`_ (2D, networked multiplayer, GDScript)."
msgid "`GDQuest <https://www.youtube.com/channel/UCxboW7x0jZqFdvMdCFKTMsQ/playlists>`_ (2D and 3D, GDScript, VisualScript and C#)."
msgstr ""
#: ../../docs/community/tutorials.rst:28
msgid "`Game Endeavor <https://www.youtube.com/channel/UCLweX1UtQjRjj7rs_0XQ2Eg/videos>`_ (2D, GDScript)."
msgid "`Game Development Center <https://www.youtube.com/c/GameDevelopmentCenter>`_ (2D, networked multiplayer, GDScript)."
msgstr ""
#: ../../docs/community/tutorials.rst:29
msgid "`Game from Scratch <https://www.youtube.com/watch?v=iDEcP8Mc-7s&list=PLS9MbmO_ssyDk79j9ewONxV88fD5e_o5d>`_ (2D and 3D, GDScript and C#)."
msgid "`Game Endeavor <https://www.youtube.com/channel/UCLweX1UtQjRjj7rs_0XQ2Eg/videos>`_ (2D, GDScript)."
msgstr ""
#: ../../docs/community/tutorials.rst:30
msgid "`HeartBeast <https://www.youtube.com/watch?v=wETY5_9kFtA&list=PL9FzW-m48fn2jlBu_0DRh7PvAt-GULEmd>`_ (2D, GDScript)."
msgid "`Game from Scratch <https://www.youtube.com/watch?v=iDEcP8Mc-7s&list=PLS9MbmO_ssyDk79j9ewONxV88fD5e_o5d>`_ (2D and 3D, GDScript and C#)."
msgstr ""
#: ../../docs/community/tutorials.rst:31
msgid "`KidsCanCode <https://www.youtube.com/channel/UCNaPQ5uLX5iIEHUCLmfAgKg/playlists>`__ (2D and 3D, GDScript and VisualScript)."
msgid "`HeartBeast <https://www.youtube.com/watch?v=wETY5_9kFtA&list=PL9FzW-m48fn2jlBu_0DRh7PvAt-GULEmd>`_ (2D, GDScript)."
msgstr ""
#: ../../docs/community/tutorials.rst:32
msgid "`Mister Taft Creates <https://www.youtube.com/playlist?list=PL4vbr3u7UKWqwQlvwvgNcgDL1p_3hcNn2>`_ (2D, GDScript)."
msgid "`KidsCanCode <https://www.youtube.com/channel/UCNaPQ5uLX5iIEHUCLmfAgKg/playlists>`__ (2D and 3D, GDScript and VisualScript)."
msgstr ""
#: ../../docs/community/tutorials.rst:33
msgid "`Miziziziz <https://www.youtube.com/playlist?list=PLmugv6_kd0qN6AyjG245_Pdak4MXKUx88>`_ (2D and 3D, GDScript)."
msgid "`Mister Taft Creates <https://www.youtube.com/playlist?list=PL4vbr3u7UKWqwQlvwvgNcgDL1p_3hcNn2>`_ (2D, GDScript)."
msgstr ""
#: ../../docs/community/tutorials.rst:34
msgid "`P1X / Krzysztof Jankowski <https://www.youtube.com/playlist?list=PLvDk7UKhld4xGPovdB4IFtAHYMYjx_-3K>`_ (3D)."
msgid "`Miziziziz <https://www.youtube.com/playlist?list=PLmugv6_kd0qN6AyjG245_Pdak4MXKUx88>`_ (2D and 3D, GDScript)."
msgstr ""
#: ../../docs/community/tutorials.rst:35
msgid "`Pigdev <https://www.youtube.com/playlist?list=PLPMN4vCRFdordS3E-3zi0Hdh7pAsbWQ6a>`_ (2D, GDScript)."
msgid "`P1X / Krzysztof Jankowski <https://www.youtube.com/playlist?list=PLvDk7UKhld4xGPovdB4IFtAHYMYjx_-3K>`_ (3D)."
msgstr ""
#: ../../docs/community/tutorials.rst:36
msgid "`Steincodes <https://www.youtube.com/c/steincodes/playlists>`__ (2D, GDScript and VisualScript)."
msgid "`Pigdev <https://www.youtube.com/playlist?list=PLPMN4vCRFdordS3E-3zi0Hdh7pAsbWQ6a>`_ (2D, GDScript)."
msgstr ""
#: ../../docs/community/tutorials.rst:37
msgid "`TheBuffED <https://www.youtube.com/watch?v=ygGaN1EOQEA&list=PLvN5Z3tTxXEDfQkt4Frg6ALirespSwZd7>`_ (2D, GDScript)."
msgid "`Steincodes <https://www.youtube.com/c/steincodes/playlists>`__ (2D, GDScript and VisualScript)."
msgstr ""
#: ../../docs/community/tutorials.rst:38
msgid "`Code with Tom <https://www.youtube.com/playlist?list=PLiUQR4U_J9ec0k91iHPme_qtfS1nrWF3W>`_ (2D and 3D, GDScript)."
msgid "`TheBuffED <https://www.youtube.com/watch?v=ygGaN1EOQEA&list=PLvN5Z3tTxXEDfQkt4Frg6ALirespSwZd7>`_ (2D, GDScript)."
msgstr ""
#: ../../docs/community/tutorials.rst:39
msgid "`BornCG <https://www.youtube.com/playlist?list=PLda3VoSoc_TSBBOBYwcmlamF1UrjVtccZ>`_ (2D and 3D, GDScript)."
msgid "`Code with Tom <https://www.youtube.com/playlist?list=PLiUQR4U_J9ec0k91iHPme_qtfS1nrWF3W>`_ (2D and 3D, GDScript)."
msgstr ""
#: ../../docs/community/tutorials.rst:40
msgid "`Gonkee <https://www.youtube.com/channel/UCJqCPFHdbc6443G3Sz6VYDw>`_ (2D and 3D, GDScript, Shaders)."
msgid "`BornCG <https://www.youtube.com/playlist?list=PLda3VoSoc_TSBBOBYwcmlamF1UrjVtccZ>`_ (2D and 3D, GDScript)."
msgstr ""
#: ../../docs/community/tutorials.rst:41
msgid "`TheGuideKnight <https://www.youtube.com/playlist?list=PLYcTJBw32KtX2fvOdtO_fS3Nd6sxM71tn>`_ (2D, GDScript)."
msgid "`Gonkee <https://www.youtube.com/channel/UCJqCPFHdbc6443G3Sz6VYDw>`_ (2D and 3D, GDScript, Shaders)."
msgstr ""
#: ../../docs/community/tutorials.rst:42
msgid "`GDScript Dude <https://www.youtube.com/channel/UCQs0i6vKISElM6mh7OzLouQ>`_ (GDScript)."
msgid "`TheGuideKnight <https://www.youtube.com/playlist?list=PLYcTJBw32KtX2fvOdtO_fS3Nd6sxM71tn>`_ (2D, GDScript)."
msgstr ""
#: ../../docs/community/tutorials.rst:43
msgid "`GDScript Dude <https://www.youtube.com/channel/UCQs0i6vKISElM6mh7OzLouQ>`_ (GDScript)."
msgstr ""
#: ../../docs/community/tutorials.rst:44
msgid "`Garbaj <https://www.youtube.com/c/Garbaj/>`_ (3D, GDScript)."
msgstr ""
#: ../../docs/community/tutorials.rst:46
msgid "Text tutorials"
#: ../../docs/community/tutorials.rst:45
msgid "`Kasper Frandsen <https://www.youtube.com/c/KasperFrandsen/>`_ (3D, Shaders)."
msgstr ""
#: ../../docs/community/tutorials.rst:48
msgid "`GDScript website by Andrew Wilkes <https://gdscript.com>`__"
msgstr ""
#: ../../docs/community/tutorials.rst:49
msgid "`Godot Recipes by KidsCanCode <http://godotrecipes.com/>`__"
msgid "Text tutorials"
msgstr ""
#: ../../docs/community/tutorials.rst:50
msgid "`Steincodes <https://steincodes.tumblr.com>`__"
msgid "`FinepointCGI website by Mitch <http://finepointcgi.io/>`__"
msgstr ""
#: ../../docs/community/tutorials.rst:51
msgid "`GDScript website by Andrew Wilkes <https://gdscript.com>`__"
msgstr ""
#: ../../docs/community/tutorials.rst:52
msgid "`Godot Recipes by KidsCanCode <http://godotrecipes.com/>`__"
msgstr ""
#: ../../docs/community/tutorials.rst:53
msgid "Devlogs"
msgstr ""
#: ../../docs/community/tutorials.rst:55
msgid "`Andrea Catania (Physics & AI) <https://www.youtube.com/channel/UCm4RuvYtgpgFDTCgaEUT5uQ/videos>`_"
msgid "`Steincodes <https://steincodes.tumblr.com>`__"
msgstr ""
#: ../../docs/community/tutorials.rst:56
msgid "`Bastiaan Olij (AR & VR) <https://www.youtube.com/channel/UCrbLJYzJjDf2p-vJC011lYw/videos>`_"
msgid "Devlogs"
msgstr ""
#: ../../docs/community/tutorials.rst:58
msgid "`Andrea Catania (Physics & AI) <https://www.youtube.com/channel/UCm4RuvYtgpgFDTCgaEUT5uQ/videos>`_"
msgstr ""
#: ../../docs/community/tutorials.rst:59
msgid "Resources"
msgstr ""
#: ../../docs/community/tutorials.rst:61
msgid "`awesome-godot: A curated list of free/libre plugins, scripts and add-ons <https://github.com/godotengine/awesome-godot>`_"
msgid "`Bastiaan Olij (AR & VR) <https://www.youtube.com/channel/UCrbLJYzJjDf2p-vJC011lYw/videos>`_"
msgstr ""
#: ../../docs/community/tutorials.rst:62
msgid "Resources"
msgstr ""
#: ../../docs/community/tutorials.rst:64
msgid "`awesome-godot: A curated list of free/libre plugins, scripts and add-ons <https://github.com/godotengine/awesome-godot>`_"
msgstr ""
#: ../../docs/community/tutorials.rst:65
msgid "`Zeef Godot Engine: A curated directory of resources by Andre Schmitz <https://godot-engine.zeef.com/andre.antonio.schmitz>`_"
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -45,7 +45,7 @@ msgid "Technical choices"
msgstr ""
#: ../../docs/development/editor/introduction_to_editor_development.rst:24
msgid "The Godot editor is drawn using Godot's renderer and :ref:`UI system <doc_user_interface>`. It does *not* rely on a toolkit such as GTK or Qt. This is similar in spirit to software like Blender. While using toolkits makes it easier to achieve a \"native\" appearance, they are also quite heavy and their licensing is not compatible with Godot's."
msgid "The Godot editor is drawn using Godot's renderer and :ref:`UI system <toc-gui-basics>`. It does *not* rely on a toolkit such as GTK or Qt. This is similar in spirit to software like Blender. While using toolkits makes it easier to achieve a \"native\" appearance, they are also quite heavy and their licensing is not compatible with Godot's."
msgstr ""
#: ../../docs/development/editor/introduction_to_editor_development.rst:30

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

File diff suppressed because it is too large Load Diff

View File

@@ -1,129 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/editor/external_editor.rst:4
msgid "Using an external text editor"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:8
msgid "`External editors are currently incompatible with Godot's \"Sync Script Changes\" feature. <https://github.com/godotengine/godot/issues/10946>`__"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:10
msgid "Godot can be used with an external text editor, such as Sublime Text or Visual Studio Code. To enable an external text editor, browse to the relevant editor settings via: ``Editor -> Editor Settings -> Text Editor -> External``"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:16
msgid "There are two fields: the executable path and command line flags. The flags allow you to integrate the editor with Godot, passing it the file path to open and other relevant arguments. Godot will replace the following placeholders in the flags string:"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:22
msgid "Field in Exec Flags"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:22
msgid "Is replaced with"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:24
msgid "``{project}``"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:24
msgid "The absolute path to the project directory"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:26
msgid "``{file}``"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:26
msgid "The absolute path to the file"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:28
msgid "``{col}``"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:28
msgid "The column number of the error"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:30
msgid "``{line}``"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:30
msgid "The line number of the error"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:33
msgid "Some example Exec Flags for various editors include:"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:36
msgid "Editor"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:36
msgid "Exec Flags"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:38
msgid "Geany/Kate"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:38
msgid "``{file} --line {line} --column {col}``"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:40
msgid "Atom/Sublime Text"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:40
msgid "``{file}:{line}``"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:42
msgid "JetBrains Rider"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:42
msgid "``--line {line} {file}``"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:44
msgid "Visual Studio Code"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:44
msgid "``{project} --goto {file}:{line}:{col}``"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:46
msgid "Vim (gVim)"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:46
msgid "``\"+call cursor({line}, {col})\" {file}``"
msgstr ""
#: ../../docs/getting_started/editor/external_editor.rst:49
msgid "For Visual Studio Code you will have to point to the ``code.cmd`` file."
msgstr ""

View File

@@ -1,441 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/editor/unity_to_godot.rst:8
msgid "From Unity to Godot Engine"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:10
msgid "This guide provides an overview of Godot Engine from the viewpoint of a Unity user, and aims to help you migrate your existing Unity experience into the world of Godot."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:15
msgid "This article talks about older versions of Unity. Nestable prefabs ('Nested prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to Godot's scenes, and allow a more Godot-like approach to scene organization."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:18
msgid "Differences"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:21
msgid "Unity"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:21
msgid "Godot"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:23
msgid "License"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:23
msgid "Proprietary, closed, free license with revenue caps and usage restrictions"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:23
msgid "MIT license, free and fully open source without any restriction"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:25
msgid "OS (editor)"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:25
msgid "Windows, macOS, Linux"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:25
msgid "Windows, macOS, X11 (Linux, \\*BSD)"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:27
msgid "OS (export)"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:27
msgid "**Desktop:** Windows, macOS, Linux"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:28
msgid "**Mobile:** Android, iOS, Windows Phone, Tizen"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:29
msgid "**Web:** WebAssembly or asm.js"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:30
msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:31
msgid "**VR:** Oculus Rift, SteamVR, Google Cardboard, PlayStation VR, Gear VR, HoloLens"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:32
msgid "**TV:** Android TV, Samsung SMART TV, tvOS"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:27
msgid "**Desktop:** Windows, macOS, X11"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:28
msgid "**Mobile:** Android, iOS"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:29
msgid "**Web:** WebAssembly"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:30
msgid "**Console:** See :ref:`doc_consoles`"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:31
msgid "**VR:** Oculus Rift, SteamVR"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:34
msgid "Scene system"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:34
msgid "Component/Scene (GameObject > Component)"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:35
msgid "Prefabs"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:34
msgid ":ref:`Scene tree and nodes <doc_scenes_and_nodes>`, allowing scenes to be nested and/or inherit other scenes"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:37
msgid "Third-party tools"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:37
msgid "Visual Studio or VS Code"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:37
msgid ":ref:`External editors are possible <doc_external_editor>`"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:38
msgid ":ref:`Android SDK for Android export <doc_exporting_for_android>`"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:40
msgid "Notable advantages"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:40
msgid "Huge community"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:41
msgid "Large assets store"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:40
msgid "Scene System"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:41
msgid ":ref:`Animation Pipeline <doc_animations>`"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:42
msgid ":ref:`Easy to write Shaders <doc_shading_language>`"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:43
msgid "Debug on Device"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:50
msgid "The editor"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:52
msgid "Godot Engine provides a rich-featured editor that allows you to build your games. The pictures below display the default layouts of both editors with colored blocks to indicate common functionalities."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:58
msgid "While both editors may seem similar, there are many differences below the surface. Both let you organize the project using the filesystem, but Godot's approach is simpler with a single configuration file, minimalist text format, and no metadata. This makes Godot more friendly to VCS systems, such as Git, Subversion, or Mercurial."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:63
msgid "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node has a specific function, the approach used by Godot is more visually descriptive. It's easier to understand what a scene does at a glance."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:67
msgid "The Inspector in Godot is more minimal, it shows only properties. Thanks to this, objects can expose more useful parameters to the user without having to hide functionality in language APIs. As a plus, Godot allows animating any of those properties visually. Changing colors, textures, enumerations, or even links to resources in real-time is possible without needing to write code."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:72
msgid "The Toolbar at the top of the screen is similar in both editors, offering control over project playback. Projects in Godot run in a separate window, rather than inside the editor (but the tree and objects can still be explored in the debugger window)."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:76
msgid "This approach has several advantages:"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:78
msgid "Running the project and closing it is fast (Unity has to save, run the project, close the project, and then reload the previous state)."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:79
msgid "Live editing is a lot more useful because changes done to the editor take effect immediately in the game and are not lost (nor have to be synced) when the game is closed. This allows fantastic workflows, like creating levels while you play them."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:80
msgid "The editor is more stable because the game runs in a separate process."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:81
msgid "The running game can be explored from different angles by toggling the \"Camera Override\" button in the editor viewport, which will switch between using the editor view and the game camera view."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:83
msgid "Finally, Godot's top toolbar includes a menu for remote debugging. These options allow deployment to a device (connected phone, tablet, or browser via HTML5), and debugging/live editing on it after the game is exported."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:88
msgid "The scene system"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:90
msgid "This is the most important difference between Unity and Godot and the favorite feature of most Godot users."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:92
msgid "Working on a 'level' in Unity usually means embedding all the required assets in a scene and linking them together with components and scripts."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:95
msgid "Godot's scene system is superficially similar to Unity. A 'level' consists of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, etc. However, in Godot the nodes are arranged in a tree. Each node can have multiple children, which makes each a subscene of the main scene. This means you can compose a whole scene with different scenes stored in different files."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:98
msgid "For example, think of a platformer level. You would compose it with multiple elements:"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:100
msgid "Bricks"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:101
msgid "Coins"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:102
msgid "The player"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:103
msgid "The enemies"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:105
msgid "In Unity, you would put all the GameObjects in the scene: the player, multiple instances of enemies, bricks everywhere to form the ground of the level and then multiple instances of coins all over the level. You would then add various components to each element to link them and add logic in the level: For example, you'd add a BoxCollider2D to all the elements of the scene so that they can collide. This principle is different in Godot."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:110
msgid "In Godot, you would split your whole scene into three separate, smaller scenes, and instance them in the main scene."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:112
msgid "**A scene for the Player alone.**"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:114
msgid "Consider the player as an element we'd like to use in different parent scenes (for instance 'level' scenes). In our case, the player element needs at least an AnimatedSprite node. This node contains the sprite textures necessary for various animations (for example, a walking animation)."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:116
msgid "**A scene for the Enemy.**"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:118
msgid "An enemy is also an element we'd like to use in several scenes. It's almost the same as the Player node. The only differences are the script (it needs 'AI' routines to generate the enemy's behavior) and the sprite textures used by the AnimatedSprite node."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:122
msgid "**A Level scene.**"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:124
msgid "A Level scene is composed of Bricks (for platforms), Coins (for the player to collect) and a number of instances of the Enemy scene. Each instance is a node in the Level scene tree. These instances are separate enemies, which initially have shared behavior and appearance as defined in the Enemy scene. You can set different properties for each Enemy node (to change its color, for example)."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:128
msgid "4. **A Main scene.** The Main scene would be composed of one root node with 2 children: a Player instance node, and a Level instance node. The root node can be anything, generally a \"root\" type such as \"Node\" which is the most global type, or \"Node2D\" (root type of all 2D-related nodes), \"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of all GUI-related nodes)."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:134
msgid "As you can see, every scene is organized as a tree. The same goes for nodes' properties: you don't *add* a collision component to a node to make it collidable like Unity does. Instead, you make this node a *child* of a new specific node that has collision properties. Godot features various collision types nodes, depending on the usage (see the :ref:`Physics introduction <doc_physics_introduction>`)."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:139
msgid "What are the advantages of this system? Wouldn't this system potentially increase the depth of the scene tree? And doesn't Unity already allow you to organize GameObjects by putting them inside empty GameObjects?"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:141
msgid "Godot's system is closer to the well-known object-oriented paradigm: Godot provides a number of nodes which are not clearly \"Game Objects\", but they provide their children with their own capabilities: this is inheritance."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:142
msgid "Godot allows the extraction of a subtree of a scene to make it a scene of its own. So if a scene tree gets too deep, it can be split into smaller subtrees. This is better for reusability, as you can include any subtree as a child of any node. Putting multiple GameObjects in an empty GameObject in Unity does not provide the same functionality."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:145
msgid "Project organization"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:149
msgid "There is no perfect project architecture. Any architecture can be made to work in either Unity and Godot."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:152
msgid "However, a common architecture for Unity projects is to have one Assets folder in the root directory that contains various folders, one per type of asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:155
msgid "Since Godot allows splitting scenes into smaller scenes, each scene and subscene existing as a file in the project, we recommend organizing your project a bit differently. This wiki provides a page for this: :ref:`doc_project_organization`."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:160
msgid "Where are my prefabs?"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:162
msgid "A prefab as provided by Unity is a 'template' element of the scene. It is reusable, and each instance of the prefab that exists in the scene has an existence of its own, but all of them have the same properties as defined by the prefab."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:166
msgid "Godot does not provide prefabs as such, but the same functionality is provided by its scene system: The scene system is organized as a tree. Godot allows you to save any subtree of a scene as a scene file. This new scene can then be instanced as many times as you want, as a child of any node. Any change you make to this new, separate scene will be applied to its instances. However, any change you make to the instance will not have any impact on the 'template' scene."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:173
msgid "To be precise, you can modify the parameters of an instance in the Inspector panel. The nodes that compose this instance are initially locked. You can unlock them if you need to by right-clicking the instance in the Scene tree and selecting \"Editable children\" in the menu. You don't need to do this to add *new* child nodes to this node. Remember that any new children will belong to the instance, not to the 'template' scene on disk. If you want to add new children to every instance of your 'template' scene, then you should add them in the 'template' scene."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:183
msgid "Glossary correspondence"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:185
msgid "GameObject -> Node"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:186
msgid "Add a component -> Inheriting"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:187
msgid "Prefab -> Reusable Scene file"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:191
msgid "Scripting: GDScript, C# and Visual Script"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:194
msgid "Design"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:196
msgid "Unity supports C#. C# benefits from its integration with Visual Studio and has desirable features such as static typing."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:198
msgid "Godot provides its own scripting language, :ref:`GDScript <doc_scripting>` as well as support for :ref:`Visual Script <toc-learn-scripting-visual_script>` and :ref:`C# <doc_c_sharp>`. GDScript borrows its syntax from Python, but is not related to it. If you wonder about the reasoning for a custom scripting language, please read the :ref:`doc_gdscript` and :ref:`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't take long to learn: Between one evening for an experienced programmer and a week for a complete beginner."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:204
msgid "Unity allows you to attach as many scripts as you want to a GameObject. Each script adds a behavior to the GameObject: For example, you can attach a script so that it reacts to the player's controls, and another that controls its specific game logic."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:208
msgid "In Godot, you can only attach one script per node. You can use either an external GDScript file or include the script directly in the node. If you need to attach more scripts to one node, then you may consider two solutions, depending on your scene and on what you want to achieve:"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:212
msgid "either add a new node between your target node and its current parent, then add a script to this new node."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:213
msgid "or, you can split your target node into multiple children and attach one script to each of them."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:215
msgid "As you can see, it can be easy to turn a scene tree to a mess. Consider splitting any complicated scene into multiple, smaller branches."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:218
msgid "Connections: groups and signals"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:220
msgid "You can control nodes by accessing them via script and calling built-in or user-defined functions on them. You can also place nodes in a group and call functions on all nodes in this group. See more in the :ref:`scripting documentation <doc_scripting_continued>`."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:225
msgid "Nodes can send a signal when a specified action occurs. A signal can be set to call any function. You can define custom signals and specify when they are triggered. See more in the :ref:`signals documentation <doc_gdscript_signals>`."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:230
msgid "Script serialization"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:232
msgid "Unity can handle script serialization in two ways:"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:234
msgid "Implicit: All public fields in a class are automatically serialized if the type is a serializable type (``Dictionary`` is not serializable)."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:235
msgid "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` attribute."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:237
msgid "Godot also has a built-in script serialization system, but it works only explicitly. You can serialize any serializable type (:ref:`built-in and various engine types <doc_binary_serialization_api>`, including :ref:`class_Array` and :ref:`class_Dictionary`) using the ``export`` keyword. See the :ref:`exports documentation <doc_gdscript_exports>` for details."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:242
msgid "Unity also has a data type called ``ScriptableObject`` used to serialize custom asset objects. Its equivalent in Godot is the base class for all resources: :ref:`class_Resource`. Creating a script that inherits :ref:`class_Resource` will allow you to create custom serializable objects. More information about resources can be found :ref:`here <doc_resources>`."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:247
msgid "Using Godot in C++"
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:249
msgid "Godot allows you to develop your project directly in C++ by using its API, which is not possible with Unity at the moment. As an example, you can consider Godot Engine's editor as a \"game\" written in C++ using the Godot API."
msgstr ""
#: ../../docs/getting_started/editor/unity_to_godot.rst:252
msgid "If you are interested in using Godot in C++, you may want to start reading the :ref:`Developing in C++ <doc_introduction_to_godot_development>` page."
msgstr ""

View File

@@ -0,0 +1,86 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/first_2d_game/01.project_setup.rst:4
msgid "Setting up the project"
msgstr ""
#: ../../docs/getting_started/first_2d_game/01.project_setup.rst:6
msgid "In this short first part, we'll set up and organize the project."
msgstr ""
#: ../../docs/getting_started/first_2d_game/01.project_setup.rst:8
msgid "Launch Godot and create a new project."
msgstr ""
#: ../../docs/getting_started/first_2d_game/01.project_setup.rst:13
msgid "GDScript"
msgstr ""
#: ../../docs/getting_started/first_2d_game/01.project_setup.rst:15
#: ../../docs/getting_started/first_2d_game/01.project_setup.rst:22
msgid "Download :download:`dodge_assets.zip <files/dodge_assets.zip>`. The archive contains the images and sounds you'll be using to make the game. Extract the archive and move the ``art/`` and ``fonts/`` directories to your project's directory."
msgstr ""
#: ../../docs/getting_started/first_2d_game/01.project_setup.rst:20
msgid "C#"
msgstr ""
#: ../../docs/getting_started/first_2d_game/01.project_setup.rst:27
msgid "Ensure that you have the required dependencies to use C# in Godot. You need the .NET Core 3.1 SDK, and an editor such as VS Code. See :ref:`doc_c_sharp_setup`."
msgstr ""
#: ../../docs/getting_started/first_2d_game/01.project_setup.rst:31
msgid "GDNative C++"
msgstr ""
#: ../../docs/getting_started/first_2d_game/01.project_setup.rst:33
msgid "Download :download:`dodge_assets_with_gdnative.zip <files/dodge_assets_with_gdnative.zip>`. The archive contains the images and sounds you'll be using to make the game. It also contains a starter GDNative project including a ``SConstruct`` file, a ``dodge_the_creeps.gdnlib`` file, a ``player.gdns`` file, and an ``entry.cpp`` file."
msgstr ""
#: ../../docs/getting_started/first_2d_game/01.project_setup.rst:40
msgid "Ensure that you have the required dependencies to use GDNative C++. You need a C++ compiler such as GCC or Clang or MSVC that supports C++14. On Windows you can download Visual Studio 2019 and select the C++ workload. You also need SCons to use the build system (the SConstruct file). Then you need to `download the Godot C++ bindings <https://github.com/godotengine/godot-cpp>`_ and place them in your project."
msgstr ""
#: ../../docs/getting_started/first_2d_game/01.project_setup.rst:47
msgid "Your project folder should look like this."
msgstr ""
#: ../../docs/getting_started/first_2d_game/01.project_setup.rst:51
msgid "This game is designed for portrait mode, so we need to adjust the size of the game window. Click on *Project -> Project Settings* to open the project settings window and in the left column, open the *Display -> Window* tab. There, set \"Width\" to ``480`` and \"Height\" to ``720``."
msgstr ""
#: ../../docs/getting_started/first_2d_game/01.project_setup.rst:58
msgid "Also, scroll down to the bottom of the section and, under the \"Stretch\" options, set ``Mode`` to \"2d\" and ``Aspect`` to \"keep\". This ensures that the game scales consistently on different sized screens."
msgstr ""
#: ../../docs/getting_started/first_2d_game/01.project_setup.rst:65
msgid "Organizing the project"
msgstr ""
#: ../../docs/getting_started/first_2d_game/01.project_setup.rst:67
msgid "In this project, we will make 3 independent scenes: ``Player``, ``Mob``, and ``HUD``, which we will combine into the game's ``Main`` scene."
msgstr ""
#: ../../docs/getting_started/first_2d_game/01.project_setup.rst:70
msgid "In a larger project, it might be useful to create folders to hold the various scenes and their scripts, but for this relatively small game, you can save your scenes and scripts in the project's root folder, identified by ``res://``. You can see your project folders in the FileSystem dock in the lower left corner:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/01.project_setup.rst:77
msgid "With the project in place, we're ready to design the player scene in the next lesson."
msgstr ""

View File

@@ -0,0 +1,97 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/first_2d_game/02.player_scene.rst:4
msgid "Creating the player scene"
msgstr ""
#: ../../docs/getting_started/first_2d_game/02.player_scene.rst:6
msgid "With the project settings in place, we can start working on the player-controlled character."
msgstr ""
#: ../../docs/getting_started/first_2d_game/02.player_scene.rst:9
msgid "The first scene will define the ``Player`` object. One of the benefits of creating a separate Player scene is that we can test it separately, even before we've created other parts of the game."
msgstr ""
#: ../../docs/getting_started/first_2d_game/02.player_scene.rst:14
msgid "Node structure"
msgstr ""
#: ../../docs/getting_started/first_2d_game/02.player_scene.rst:16
msgid "To begin, we need to choose a root node for the player object. As a general rule, a scene's root node should reflect the object's desired functionality - what the object *is*. Click the \"Other Node\" button and add an :ref:`Area2D <class_Area2D>` node to the scene."
msgstr ""
#: ../../docs/getting_started/first_2d_game/02.player_scene.rst:23
msgid "Godot will display a warning icon next to the node in the scene tree. You can ignore it for now. We will address it later."
msgstr ""
#: ../../docs/getting_started/first_2d_game/02.player_scene.rst:26
msgid "With ``Area2D`` we can detect objects that overlap or run into the player. Change the node's name to ``Player`` by double-clicking on it. Now that we've set the scene's root node, we can add additional nodes to give it more functionality."
msgstr ""
#: ../../docs/getting_started/first_2d_game/02.player_scene.rst:31
msgid "Before we add any children to the ``Player`` node, we want to make sure we don't accidentally move or resize them by clicking on them. Select the node and click the icon to the right of the lock; its tooltip says \"Makes sure the object's children are not selectable.\""
msgstr ""
#: ../../docs/getting_started/first_2d_game/02.player_scene.rst:38
msgid "Save the scene. Click Scene -> Save, or press :kbd:`Ctrl + S` on Windows/Linux or :kbd:`Cmd + S` on macOS."
msgstr ""
#: ../../docs/getting_started/first_2d_game/02.player_scene.rst:41
msgid "For this project, we will be following the Godot naming conventions."
msgstr ""
#: ../../docs/getting_started/first_2d_game/02.player_scene.rst:43
msgid "**GDScript**: Classes (nodes) use PascalCase, variables and functions use snake_case, and constants use ALL_CAPS (See :ref:`doc_gdscript_styleguide`)."
msgstr ""
#: ../../docs/getting_started/first_2d_game/02.player_scene.rst:47
msgid "**C#**: Classes, export variables and methods use PascalCase, private fields use _camelCase, local variables and parameters use camelCase (See :ref:`doc_c_sharp_styleguide`). Be careful to type the method names precisely when connecting signals."
msgstr ""
#: ../../docs/getting_started/first_2d_game/02.player_scene.rst:54
msgid "Sprite animation"
msgstr ""
#: ../../docs/getting_started/first_2d_game/02.player_scene.rst:56
msgid "Click on the ``Player`` node and add an :ref:`AnimatedSprite2D <class_AnimatedSprite>` node as a child. The ``AnimatedSprite`` will handle the appearance and animations for our player. Notice that there is a warning symbol next to the node. An ``AnimatedSprite2D`` requires a :ref:`SpriteFrames <class_SpriteFrames>` resource, which is a list of the animations it can display. To create one, find the ``Frames`` property in the Inspector and click \"[empty]\" -> \"New SpriteFrames\". Click again to open the \"SpriteFrames\" panel:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/02.player_scene.rst:67
msgid "On the left is a list of animations. Click the \"default\" one and rename it to \"walk\". Then click the \"New Animation\" button to create a second animation named \"up\". Find the player images in the \"FileSystem\" tab - they're in the ``art`` folder you unzipped earlier. Drag the two images for each animation, named ``playerGrey_up[1/2]`` and ``playerGrey_walk[1/2]``, into the \"Animation Frames\" side of the panel for the corresponding animation:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/02.player_scene.rst:76
msgid "The player images are a bit too large for the game window, so we need to scale them down. Click on the ``AnimatedSprite2D`` node and set the ``Scale`` property to ``(0.5, 0.5)``. You can find it in the Inspector under the ``Node2D`` heading."
msgstr ""
#: ../../docs/getting_started/first_2d_game/02.player_scene.rst:83
msgid "Finally, add a :ref:`CollisionShape2D <class_CollisionShape2D>` as a child of ``Player``. This will determine the player's \"hitbox\", or the bounds of its collision area. For this character, a ``CapsuleShape2D`` node gives the best fit, so next to \"Shape\" in the Inspector, click \"[empty]\"\" -> \"New CapsuleShape2D\". Using the two size handles, resize the shape to cover the sprite:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/02.player_scene.rst:92
msgid "When you're finished, your ``Player`` scene should look like this:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/02.player_scene.rst:96
msgid "Make sure to save the scene again after these changes."
msgstr ""
#: ../../docs/getting_started/first_2d_game/02.player_scene.rst:98
msgid "In the next part, we'll add a script to the player node to move and animate it. Then, we'll set up collision detection to know when the player got hit by something."
msgstr ""

View File

@@ -0,0 +1,193 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:4
msgid "Coding the player"
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:6
msgid "In this lesson, we'll add player movement, animation, and set it up to detect collisions."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:9
msgid "To do so, we need to add some functionality that we can't get from a built-in node, so we'll add a script. Click the ``Player`` node and click the \"Attach Script\" button:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:15
msgid "In the script settings window, you can leave the default settings alone. Just click \"Create\":"
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:18
msgid "If you're creating a C# script or other languages, select the language from the `language` drop down menu before hitting create."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:23
msgid "If this is your first time encountering GDScript, please read :ref:`doc_scripting` before continuing."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:26
msgid "Start by declaring the member variables this object will need:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:86
msgid "Using the ``export`` keyword on the first variable ``speed`` allows us to set its value in the Inspector. This can be handy for values that you want to be able to adjust just like a node's built-in properties. Click on the ``Player`` node and you'll see the property now appears in the \"Script Variables\" section of the Inspector. Remember, if you change the value here, it will override the value written in the script."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:93
msgid "If you're using C#, you need to (re)build the project assemblies whenever you want to see new export variables or signals. This build can be manually triggered by clicking the word \"Mono\" at the bottom of the editor window to reveal the Mono Panel, then clicking the \"Build Project\" button."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:101
msgid "The ``_ready()`` function is called when a node enters the scene tree, which is a good time to find the size of the game window:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:129
msgid "Now we can use the ``_process()`` function to define what the player will do. ``_process()`` is called every frame, so we'll use it to update elements of our game, which we expect will change often. For the player, we need to do the following:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:134
msgid "Check for input."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:135
msgid "Move in the given direction."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:136
msgid "Play the appropriate animation."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:138
msgid "First, we need to check for input - is the player pressing a key? For this game, we have 4 direction inputs to check. Input actions are defined in the Project Settings under \"Input Map\". Here, you can define custom events and assign different keys, mouse events, or other inputs to them. For this game, we will just use the default events called \"ui_right\" etc that are assigned to the arrow keys on the keyboard."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:145
msgid "You can detect whether a key is pressed using ``Input.is_action_pressed()``, which returns ``true`` if it's pressed or ``false`` if it isn't."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:224
msgid "We start by setting the ``velocity`` to ``(0, 0)`` - by default, the player should not be moving. Then we check each input and add/subtract from the ``velocity`` to obtain a total direction. For example, if you hold ``right`` and ``down`` at the same time, the resulting ``velocity`` vector will be ``(1, 1)``. In this case, since we're adding a horizontal and a vertical movement, the player would move *faster* diagonally than if it just moved horizontally."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:231
msgid "We can prevent that if we *normalize* the velocity, which means we set its *length* to ``1``, then multiply by the desired speed. This means no more fast diagonal movement."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:235
msgid "If you've never used vector math before, or need a refresher, you can see an explanation of vector usage in Godot at :ref:`doc_vector_math`. It's good to know but won't be necessary for the rest of this tutorial."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:239
msgid "We also check whether the player is moving so we can call ``play()`` or ``stop()`` on the AnimatedSprite2D."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:242
msgid "``$`` is shorthand for ``get_node()``. So in the code above, ``$AnimatedSprite2D.play()`` is the same as ``get_node(\"AnimatedSprite2D\").play()``."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:246
msgid "In GDScript, ``$`` returns the node at the relative path from the current node, or returns ``null`` if the node is not found. Since AnimatedSprite2D is a child of the current node, we can use ``$AnimatedSprite2D``."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:251
msgid "Now that we have a movement direction, we can update the player's position. We can also use ``clamp()`` to prevent it from leaving the screen. *Clamping* a value means restricting it to a given range. Add the following to the bottom of the ``_process`` function (make sure it's not indented under the `else`):"
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:279
msgid "The `delta` parameter in the `_process()` function refers to the *frame length* - the amount of time that the previous frame took to complete. Using this value ensures that your movement will remain consistent even if the frame rate changes."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:284
msgid "Click \"Play Scene\" (:kbd:`F6`, :kbd:`Cmd + R` on macOS) and confirm you can move the player around the screen in all directions."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:287
msgid "If you get an error in the \"Debugger\" panel that says"
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:289
msgid "``Attempt to call function 'play' in base 'null instance' on a null instance``"
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:292
msgid "this likely means you spelled the name of the AnimatedSprite2D node wrong. Node names are case-sensitive and ``$NodeName`` must match the name you see in the scene tree."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:297
msgid "Choosing animations"
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:299
msgid "Now that the player can move, we need to change which animation the AnimatedSprite2D is playing based on its direction. We have the \"walk\" animation, which shows the player walking to the right. This animation should be flipped horizontally using the ``flip_h`` property for left movement. We also have the \"up\" animation, which should be flipped vertically with ``flip_v`` for downward movement. Let's place this code at the end of the ``_process()`` function:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:345
msgid "The boolean assignments in the code above are a common shorthand for programmers. Since we're doing a comparison test (boolean) and also *assigning* a boolean value, we can do both at the same time. Consider this code versus the one-line boolean assignment above:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:369
msgid "Play the scene again and check that the animations are correct in each of the directions."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:372
msgid "A common mistake here is to type the names of the animations wrong. The animation names in the SpriteFrames panel must match what you type in the code. If you named the animation ``\"Walk\"``, you must also use a capital \"W\" in the code."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:377
msgid "When you're sure the movement is working correctly, add this line to ``_ready()``, so the player will be hidden when the game starts:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:394
msgid "Preparing for collisions"
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:396
msgid "We want ``Player`` to detect when it's hit by an enemy, but we haven't made any enemies yet! That's OK, because we're going to use Godot's *signal* functionality to make it work."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:400
msgid "Add the following at the top of the script, after ``extends Area2D``:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:429
msgid "This defines a custom signal called \"hit\" that we will have our player emit (send out) when it collides with an enemy. We will use ``Area2D`` to detect the collision. Select the ``Player`` node and click the \"Node\" tab next to the Inspector tab to see the list of signals the player can emit:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:436
msgid "Notice our custom \"hit\" signal is there as well! Since our enemies are going to be ``RigidBody2D`` nodes, we want the ``body_entered(body: Node)`` signal. This signal will be emitted when a body contacts the player. Click \"Connect..\" and the \"Connect a Signal\" window appears. We don't need to change any of these settings so click \"Connect\" again. Godot will automatically create a function in your player's script."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:445
msgid "Note the green icon indicating that a signal is connected to this function. Add this code to the function:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:477
msgid "Each time an enemy hits the player, the signal is going to be emitted. We need to disable the player's collision so that we don't trigger the ``hit`` signal more than once."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:481
msgid "Disabling the area's collision shape can cause an error if it happens in the middle of the engine's collision processing. Using ``set_deferred()`` tells Godot to wait to disable the shape until it's safe to do so."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:486
msgid "The last piece is to add a function we can call to reset the player when starting a new game."
msgstr ""
#: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:515
msgid "With the player working, we'll work on the enemy in the next lesson."
msgstr ""

View File

@@ -0,0 +1,125 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:4
msgid "Creating the enemy"
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:6
msgid "Now it's time to make the enemies our player will have to dodge. Their behavior will not be very complex: mobs will spawn randomly at the edges of the screen, choose a random direction, and move in a straight line."
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:10
msgid "We'll create a ``Mob`` scene, which we can then *instance* to create any number of independent mobs in the game."
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:14
msgid "Node setup"
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:16
msgid "Click Scene -> New Scene and add the following nodes:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:18
msgid ":ref:`RigidBody2D <class_RigidBody2D>` (named ``Mob``)"
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:20
msgid ":ref:`AnimatedSprite <class_AnimatedSprite>`"
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:21
msgid ":ref:`CollisionShape2D <class_CollisionShape2D>`"
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:22
msgid ":ref:`VisibilityNotifier2D <class_VisibilityNotifier2D>`"
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:24
msgid "Don't forget to set the children so they can't be selected, like you did with the Player scene."
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:27
msgid "In the :ref:`RigidBody2D <class_RigidBody2D>` properties, set ``Gravity Scale`` to ``0``, so the mob will not fall downward. In addition, under the ``PhysicsBody2D`` section, click the ``Mask`` property and uncheck the first box. This will ensure the mobs do not collide with each other."
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:34
msgid "Set up the :ref:`AnimatedSprite <class_AnimatedSprite>` like you did for the player. This time, we have 3 animations: ``fly``, ``swim``, and ``walk``. There are two images for each animation in the art folder."
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:38
msgid "Adjust the \"Speed (FPS)\" to ``3`` for all animations."
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:42
msgid "Set the ``Playing`` property in the Inspector to \"On\"."
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:44
msgid "We'll select one of these animations randomly so that the mobs will have some variety."
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:47
msgid "Like the player images, these mob images need to be scaled down. Set the ``AnimatedSprite2D``'s ``Scale`` property to ``(0.75, 0.75)``."
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:50
msgid "As in the ``Player`` scene, add a ``CapsuleShape2D`` for the collision. To align the shape with the image, you'll need to set the ``Rotation Degrees`` property to ``90`` (under \"Transform\" in the Inspector)."
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:54
msgid "Save the scene."
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:57
msgid "Enemy script"
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:59
msgid "Add a script to the ``Mob`` like this:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:102
msgid "Now let's look at the rest of the script. In ``_ready()`` we play the animation and randomly choose one of the three animation types:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:140
msgid "First, we get the list of animation names from the AnimatedSprite2D's ``frames`` property. This returns an Array containing all three animation names: ``[\"walk\", \"swim\", \"fly\"]``."
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:144
msgid "We then need to pick a random number between ``0`` and ``2`` to select one of these names from the list (array indices start at ``0``). ``randi() % n`` selects a random integer between ``0`` and ``n-1``."
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:148
msgid "You must use ``randomize()`` if you want your sequence of \"random\" numbers to be different every time you run the scene. We're going to use ``randomize()`` in our ``Main`` scene, so we won't need it here."
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:152
msgid "The last piece is to make the mobs delete themselves when they leave the screen. Connect the ``screen_exited()`` signal of the ``VisibilityNotifier2D`` node and add this code:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:176
msgid "This completes the `Mob` scene."
msgstr ""
#: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:178
msgid "With the player and enemies ready, in the next part, we'll bring them together in a new scene. We'll make enemies spawn randomly around the game board and move forward, turning our project into a playable game."
msgstr ""

View File

@@ -0,0 +1,173 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:4
msgid "The main game scene"
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:6
msgid "Now it's time to bring everything we did together into a playable game scene."
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:8
msgid "Create a new scene and add a :ref:`Node <class_Node>` named ``Main``. Ensure you create a Node, **not** a Node2D. Click the \"Instance\" button and select your saved ``Player.tscn``."
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:14
msgid "Now, add the following nodes as children of ``Main``, and name them as shown (values are in seconds):"
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:17
msgid ":ref:`Timer <class_Timer>` (named ``MobTimer``) - to control how often mobs spawn"
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:19
msgid ":ref:`Timer <class_Timer>` (named ``ScoreTimer``) - to increment the score every second"
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:21
msgid ":ref:`Timer <class_Timer>` (named ``StartTimer``) - to give a delay before starting"
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:23
msgid ":ref:`Position2D <class_Position2D>` (named ``StartPosition``) - to indicate the player's start position"
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:26
msgid "Set the ``Wait Time`` property of each of the ``Timer`` nodes as follows:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:28
msgid "``MobTimer``: ``0.5``"
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:29
msgid "``ScoreTimer``: ``1``"
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:30
msgid "``StartTimer``: ``2``"
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:32
msgid "In addition, set the ``One Shot`` property of ``StartTimer`` to \"On\" and set ``Position`` of the ``StartPosition`` node to ``(240, 450)``."
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:36
msgid "Spawning mobs"
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:38
msgid "The Main node will be spawning new mobs, and we want them to appear at a random location on the edge of the screen. Add a :ref:`Path2D <class_Path2D>` node named ``MobPath`` as a child of ``Main``. When you select ``Path2D``, you will see some new buttons at the top of the editor:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:45
msgid "Select the middle one (\"Add Point\") and draw the path by clicking to add the points at the corners shown. To have the points snap to the grid, make sure \"Use Grid Snap\" and \"Use Snap\" are both selected. These options can be found to the left of the \"Lock\" button, appearing as a magnet next to some dots and intersecting lines, respectively."
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:53
msgid "Draw the path in *clockwise* order, or your mobs will spawn pointing *outwards* instead of *inwards*!"
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:58
msgid "After placing point ``4`` in the image, click the \"Close Curve\" button and your curve will be complete."
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:61
msgid "Now that the path is defined, add a :ref:`PathFollow2D <class_PathFollow2D>` node as a child of ``MobPath`` and name it ``MobSpawnLocation``. This node will automatically rotate and follow the path as it moves, so we can use it to select a random position and direction along the path."
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:66
msgid "Your scene should look like this:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:71
msgid "Main script"
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:73
msgid "Add a script to ``Main``. At the top of the script, we use ``export (PackedScene)`` to allow us to choose the Mob scene we want to instance."
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:152
msgid "We also add a call to ``randomize()`` here so that the random number generator generates different random numbers each time the game is run:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:192
msgid "Click the ``Main`` node and you will see the ``Mob Scene`` property in the Inspector under \"Script Variables\"."
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:195
msgid "You can assign this property's value in two ways:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:197
msgid "Drag ``Mob.tscn`` from the \"FileSystem\" panel and drop it in the ``Mob`` property ."
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:199
msgid "Click the down arrow next to \"[empty]\" and choose \"Load\". Select ``Mob.tscn``."
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:201
msgid "Next, select the ``Player`` node in the Scene dock, and access the Node dock on the sidebar. Make sure to have the Signals tab selected in the Node dock."
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:204
msgid "You should see a list of the signals for the ``Player`` node. Find and double-click the ``hit`` signal in the list (or right-click it and select \"Connect...\"). This will open the signal connection dialog. We want to make a new function named ``game_over``, which will handle what needs to happen when a game ends. Type \"game_over\" in the \"Receiver Method\" box at the bottom of the signal connection dialog and click \"Connect\". Add the following code to the new function, as well as a ``new_game`` function that will set everything up for a new game:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:258
msgid "Now connect the ``timeout()`` signal of each of the Timer nodes (``StartTimer``, ``ScoreTimer`` , and ``MobTimer``) to the main script. ``StartTimer`` will start the other two timers. ``ScoreTimer`` will increment the score by 1."
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:308
msgid "In ``_on_MobTimer_timeout()``, we will create a mob instance, pick a random starting location along the ``Path2D``, and set the mob in motion. The ``PathFollow2D`` node will automatically rotate as it follows the path, so we will use that to select the mob's direction as well as its position. When we spawn a mob, we'll pick a random value between ``150.0`` and ``250.0`` for how fast each mob will move (it would be boring if they were all moving at the same speed)."
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:316
msgid "Note that a new instance must be added to the scene using ``add_child()``."
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:401
msgid "Why ``PI``? In functions requiring angles, Godot uses *radians*, not degrees. Pi represents a half turn in radians, about ``3.1415`` (there is also ``TAU`` which is equal to ``2 * PI``). If you're more comfortable working with degrees, you'll need to use the ``deg2rad()`` and ``rad2deg()`` functions to convert between the two."
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:409
msgid "Testing the scene"
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:411
msgid "Let's test the scene to make sure everything is working. Add this ``new_game`` call to ``_ready()``:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:435
msgid "Let's also assign ``Main`` as our \"Main Scene\" - the one that runs automatically when the game launches. Press the \"Play\" button and select ``Main.tscn`` when prompted."
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:439
msgid "You should be able to move the player around, see mobs spawning, and see the player disappear when hit by a mob."
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:442
msgid "When you're sure everything is working, remove the call to ``new_game()`` from ``_ready()``."
msgstr ""
#: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:445
msgid "What's our game lacking? Some user interface. In the next lesson, we'll add a title screen and display the player's score."
msgstr ""

View File

@@ -0,0 +1,246 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:4
msgid "Heads up display"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:6
msgid "The final piece our game needs is a User Interface (UI) to display things like score, a \"game over\" message, and a restart button."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:9
msgid "Create a new scene, and add a :ref:`CanvasLayer <class_CanvasLayer>` node named ``HUD``. \"HUD\" stands for \"heads-up display\", an informational display that appears as an overlay on top of the game view."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:13
msgid "The :ref:`CanvasLayer <class_CanvasLayer>` node lets us draw our UI elements on a layer above the rest of the game, so that the information it displays isn't covered up by any game elements like the player or mobs."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:17
msgid "The HUD needs to display the following information:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:19
msgid "Score, changed by ``ScoreTimer``."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:20
msgid "A message, such as \"Game Over\" or \"Get Ready!\""
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:21
msgid "A \"Start\" button to begin the game."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:23
msgid "The basic node for UI elements is :ref:`Control <class_Control>`. To create our UI, we'll use two types of :ref:`Control <class_Control>` nodes: :ref:`Label <class_Label>` and :ref:`Button <class_Button>`."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:27
msgid "Create the following as children of the ``HUD`` node:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:29
msgid ":ref:`Label <class_Label>` named ``ScoreLabel``."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:30
msgid ":ref:`Label <class_Label>` named ``Message``."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:31
msgid ":ref:`Button <class_Button>` named ``StartButton``."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:32
msgid ":ref:`Timer <class_Timer>` named ``MessageTimer``."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:34
msgid "Click on the ``ScoreLabel`` and type a number into the ``Text`` field in the Inspector. The default font for ``Control`` nodes is small and doesn't scale well. There is a font file included in the game assets called \"Xolonium-Regular.ttf\". To use this font, do the following:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:39
msgid "Under \"Custom Fonts\", choose \"New Font\""
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:43
msgid "Click on the \"Font\" you added, and under \"Font/Data/0\", choose \"Load\" and select the \"Xolonium-Regular.ttf\" file."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:48
msgid "Once you've done this on the ``ScoreLabel``, you can click the down arrow next to the Font property and choose \"Copy\", then \"Paste\" it in the same place on the other two Control nodes. Set \"Custom Font Size\" property of the ``ScoreLabel``. A setting of ``64`` works well."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:55
msgid "**Anchors and Margins:** ``Control`` nodes have a position and size, but they also have anchors and margins. Anchors define the origin - the reference point for the edges of the node. Margins update automatically when you move or resize a control node. They represent the distance from the control node's edges to its anchor."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:61
msgid "Arrange the nodes as shown below. Click the \"Layout\" button to set a Control node's layout:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:66
msgid "You can drag the nodes to place them manually, or for more precise placement, use the following settings:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:70
msgid "ScoreLabel"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:72
msgid "*Layout* : \"Top Wide\""
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:73
msgid "*Text* : ``0``"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:74
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:81
msgid "*Align* : \"Center\""
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:77
msgid "Message"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:79
msgid "*Layout* : \"HCenter Wide\""
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:80
msgid "*Text* : ``Dodge the Creeps!``"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:82
msgid "*Autowrap* : \"On\""
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:85
msgid "StartButton"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:87
msgid "*Text* : ``Start``"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:88
msgid "*Layout* : \"Center Bottom\""
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:89
msgid "*Margin* :"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:91
msgid "Top: ``-200``"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:92
msgid "Bottom: ``-100``"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:94
msgid "On the ``MessageTimer``, set the ``Wait Time`` to ``2`` and set the ``One Shot`` property to \"On\"."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:97
msgid "Now add this script to ``HUD``:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:157
msgid "The ``start_game`` signal tells the ``Main`` node that the button has been pressed."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:204
msgid "This function is called when we want to display a message temporarily, such as \"Get Ready\"."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:255
msgid "This function is called when the player loses. It will show \"Game Over\" for 2 seconds, then return to the title screen and, after a brief pause, show the \"Start\" button."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:259
msgid "When you need to pause for a brief time, an alternative to using a Timer node is to use the SceneTree's ``create_timer()`` function. This can be very useful to add delays such as in the above code, where we want to wait some time before showing the \"Start\" button."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:284
msgid "This function is called by ``Main`` whenever the score changes."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:286
msgid "Connect the ``timeout()`` signal of ``MessageTimer`` and the ``pressed()`` signal of ``StartButton`` and add the following code to the new functions:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:332
msgid "Connecting HUD to Main"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:334
msgid "Now that we're done creating the ``HUD`` scene, go back to ``Main``. Instance the ``HUD`` scene in ``Main`` like you did the ``Player`` scene. The scene tree should look like this, so make sure you didn't miss anything:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:340
msgid "Now we need to connect the ``HUD`` functionality to our ``Main`` script. This requires a few additions to the ``Main`` scene:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:343
msgid "In the Node tab, connect the HUD's ``start_game`` signal to the ``new_game()`` function of the Main node by typing \"new_game\" in the \"Receiver Method\" in the \"Connect a Signal\" window. Verify that the green connection icon now appears next to ``func new_game()`` in the script."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:348
msgid "In ``new_game()``, update the score display and show the \"Get Ready\" message:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:367
msgid "In ``game_over()`` we need to call the corresponding ``HUD`` function:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:382
msgid "Finally, add this to ``_on_ScoreTimer_timeout()`` to keep the display in sync with the changing score:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:398
msgid "Now you're ready to play! Click the \"Play the Project\" button. You will be asked to select a main scene, so choose ``Main.tscn``."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:402
msgid "Removing old creeps"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:404
msgid "If you play until \"Game Over\" and then start a new game right away, the creeps from the previous game may still be on the screen. It would be better if they all disappeared at the start of a new game. We just need a way to tell *all* the mobs to remove themselves. We can do this with the \"group\" feature."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:409
msgid "In the ``Mob`` scene, select the root node and click the \"Node\" tab next to the Inspector (the same place where you find the node's signals). Next to \"Signals\", click \"Groups\" and you can type a new group name and click \"Add\"."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:415
msgid "Now all mobs will be in the \"mobs\" group. We can then add the following line to the ``new_game()`` function in ``Main``:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:433
msgid "The ``call_group()`` function calls the named function on every node in a group - in this case we are telling every mob to delete itself."
msgstr ""
#: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:436
msgid "The game's mostly done at this point. In the next and last part, we'll polish it a bit by adding a background, looping music, and some keyboard shortcuts."
msgstr ""

View File

@@ -0,0 +1,93 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:4
msgid "Finishing up"
msgstr ""
#: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:6
msgid "We have now completed all the functionality for our game. Below are some remaining steps to add a bit more \"juice\" to improve the game experience."
msgstr ""
#: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:9
msgid "Feel free to expand the gameplay with your own ideas."
msgstr ""
#: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:12
msgid "Background"
msgstr ""
#: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:14
msgid "The default gray background is not very appealing, so let's change its color. One way to do this is to use a :ref:`ColorRect <class_ColorRect>` node. Make it the first node under ``Main`` so that it will be drawn behind the other nodes. ``ColorRect`` only has one property: ``Color``. Choose a color you like and select \"Layout\" -> \"Full Rect\" so that it covers the screen."
msgstr ""
#: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:20
msgid "You could also add a background image, if you have one, by using a ``TextureRect`` node instead."
msgstr ""
#: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:24
msgid "Sound effects"
msgstr ""
#: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:26
msgid "Sound and music can be the single most effective way to add appeal to the game experience. In your game assets folder, you have two sound files: \"House In a Forest Loop.ogg\" for background music, and \"gameover.wav\" for when the player loses."
msgstr ""
#: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:31
msgid "Add two :ref:`AudioStreamPlayer <class_AudioStreamPlayer>` nodes as children of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On each one, click on the ``Stream`` property, select \"Load\", and choose the corresponding audio file."
msgstr ""
#: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:36
msgid "To play the music, add ``$Music.play()`` in the ``new_game()`` function and ``$Music.stop()`` in the ``game_over()`` function."
msgstr ""
#: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:39
msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function."
msgstr ""
#: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:42
msgid "Keyboard shortcut"
msgstr ""
#: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:44
msgid "Since the game is played with keyboard controls, it would be convenient if we could also start the game by pressing a key on the keyboard. We can do this with the \"Shortcut\" property of the ``Button`` node."
msgstr ""
#: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:48
msgid "In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* property in the Inspector. Select \"New Shortcut\" and click on the \"Shortcut\" item. A second *Shortcut* property will appear. Select \"New InputEventAction\" and click the new \"InputEventAction\". Finally, in the *Action* property, type the name ``ui_select``. This is the default input event associated with the spacebar."
msgstr ""
#: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:57
msgid "Now when the start button appears, you can either click it or press :kbd:`Space` to start the game."
msgstr ""
#: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:60
msgid "And with that, you completed your first 2D game in Godot."
msgstr ""
#: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:64
msgid "You got to make a player-controlled character, enemies that spawn randomly around the game board, count the score, implement a game over and replay, user interface, sounds, and more. Congratulations!"
msgstr ""
#: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:68
msgid "There's still much to learn, but you can take a moment to appreciate what you achieved."
msgstr ""
#: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:71
msgid "And when you're ready, you can move on to :ref:`doc_your_first_3d_game` to learn to create a complete 3D game from scratch, in Godot."
msgstr ""

View File

@@ -0,0 +1,121 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/first_2d_game/index.rst:4
msgid "Your first 2D game"
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:6
msgid "In this step-by-step tutorial series, you will create your first complete 2D game with Godot. By the end of the series, you will have a simple yet complete game of your own, like the image below."
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:10
msgid "|image0|"
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:12
msgid "You will learn how the Godot editor works, how to structure a project, and build a 2D game."
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:15
msgid "This project is an introduction to the Godot engine. It assumes that you have some programming experience already. If you're new to programming entirely, you should start here: :ref:`doc_scripting`."
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:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:22
msgid "You will learn to:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:24
msgid "Create a complete 2D game with the Godot editor."
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:25
msgid "Structure a simple game project."
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:26
msgid "Move the player character and change its sprite."
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:27
msgid "Spawn random enemies."
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:28
msgid "Count the score."
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:30
msgid "And more."
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:32
msgid "You'll find another series where you'll create a similar game but in 3D. We recommend you to start with this one, though."
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:35
msgid "**Why start with 2D?**"
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:37
msgid "3D games are much more complex than 2D ones. It would be best if you stuck to 2D until you understood the game development process and how to use Godot well."
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:40
msgid "You can find a completed version of this project at these locations:"
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:42
msgid "https://github.com/kidscancode/Godot3_dodge/releases"
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:43
msgid "https://github.com/godotengine/godot-demo-projects"
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:46
msgid "Prerequisites"
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:48
msgid "This step-by-step tutorial is intended for beginners who followed the complete :ref:`Getting Started <toc-learn-step_by_step>`."
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:51
msgid "If you're an experienced programmer, you can find the complete demo's source code here: `Godot demo projects <https://github.com/godotengine/godot-demo-projects>`__."
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:55
msgid "We prepared some game assets you'll need to download so we can jump straight to the code."
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:58
msgid "You can download them by clicking the link below."
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:60
msgid ":download:`dodge_assets.zip <files/dodge_assets.zip>`."
msgstr ""
#: ../../docs/getting_started/first_2d_game/index.rst:63
msgid "Contents"
msgstr ""

View File

@@ -0,0 +1,201 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:4
msgid "Setting up the game area"
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:6
msgid "In this first part, we're going to set up the game area. Let's get started by importing the start assets and setting up the game scene."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:9
msgid "We've prepared a Godot project with the 3D models and sounds we'll use for this tutorial, linked in the index page. If you haven't done so yet, you can download the archive here: `Squash the Creeps assets <https://github.com/GDQuest/godot-3d-dodge-the-creeps/releases/tag/1.0.0>`__."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:14
msgid "Once you downloaded it, extract the .zip archive on your computer. Open the Godot project manager and click the *Import* button."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:17
msgid "|image1|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:19
msgid "In the import popup, enter the full path to the freshly created directory ``squash_the_creeps_start/``. You can click the *Browse* button on the right to open a file browser and navigate to the ``project.godot`` file the folder contains."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:24
msgid "|image2|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:26
msgid "Click *Import & Edit* to open the project in the editor."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:28
msgid "|image3|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:30
msgid "The start project contains an icon and two folders: ``art/`` and ``fonts/``. There, you will find the art assets and music we'll use in the game."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:33
msgid "|image4|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:35
msgid "There are two 3D models, ``player.glb`` and ``mob.glb``, some materials that belong to these models, and a music track."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:39
msgid "Setting up the playable area"
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:41
msgid "We're going to create our main scene with a plain *Node* as its root. In the *Scene* dock, click the *Add Node* button represented by a \"+\" icon in the top-left and double-click on *Node*. Name the node \"Main\". Alternatively, to add a node to the scene, you can press :kbd:`Ctrl + a` (or :kbd:`Cmd + a` on MacOS)."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:46
msgid "|image5|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:48
msgid "Save the scene as ``Main.tscn`` by pressing :kbd:`Ctrl + s` (:kbd:`Cmd + s` on MacOS)."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:50
msgid "We'll start by adding a floor that'll prevent the characters from falling. To create static colliders like the floor, walls, or ceilings, you can use *StaticBody* nodes. They require *CollisionShape* child nodes to define the collision area. With the *Main* node selected, add a *StaticBody* node, then a *CollisionShape*. Rename the *StaticBody* as *Ground*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:56
msgid "|image6|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:58
msgid "A warning sign next to the *CollisionShape* appears because we haven't defined its shape. If you click the icon, a popup appears to give you more information."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:61
msgid "|image7|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:63
msgid "To create a shape, with the *CollisionShape* selected, head to the *Inspector* and click the *[empty]* field next to the *Shape* property. Create a new *Box Shape*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:67
msgid "|image8|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:69
msgid "The box shape is perfect for flat ground and walls. Its thickness makes it reliable to block even fast-moving objects."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:72
msgid "A box's wireframe appears in the viewport with three orange dots. You can click and drag these to edit the shape's extents interactively. We can also precisely set the size in the inspector. Click on the *BoxShape* to expand the resource. Set its *Extents* to ``30`` on the X axis, ``1`` for the Y axis, and ``30`` for the Z axis."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:78
msgid "|image9|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:82
msgid "In 3D, translation and size units are in meters. The box's total size is twice its extents: ``60`` by ``60`` meters on the ground plane and ``2`` units tall. The ground plane is defined by the X and Z axes, while the Y axis represents the height."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:87
msgid "Collision shapes are invisible. We need to add a visual floor that goes along with it. Select the *Ground* node and add a *MeshInstance* as its child."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:90
msgid "|image10|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:92
msgid "In the *Inspector*, click on the field next to *Mesh* and create a *CubeMesh* resource to create a visible cube."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:95
msgid "|image11|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:97
msgid "Once again, it's too small by default. Click the cube icon to expand the resource and set its *Size* to ``60``, ``2``, and ``60``. As the cube resource works with a size rather than extents, we need to use these values so it matches our collision shape."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:102
msgid "|image12|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:104
msgid "You should see a wide grey slab that covers the grid and blue and red axes in the viewport."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:107
msgid "We're going to move the ground down so we can see the floor grid. Select the *Ground* node, hold the :kbd:`Ctrl` key down to turn on grid snapping (:kbd:`Cmd` on MacOS), and click and drag down on the Y axis. It's the green arrow in the move gizmo."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:111
msgid "|image13|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:115
msgid "If you can't see the 3D object manipulator like on the image above, ensure the *Select Mode* is active in the toolbar above the view."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:118
msgid "|image14|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:120
msgid "Move the ground down ``1`` meter. A label in the bottom-left corner of the viewport tells you how much you're translating the node."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:123
msgid "|image15|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:127
msgid "Moving the *Ground* node down moves both children along with it. Ensure you move the *Ground* node, **not** the *MeshInstance* or the *CollisionShape*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:131
msgid "Let's add a directional light so our scene isn't all grey. Select the *Main* node and add a *DirectionalLight* as a child of it. We need to move it and rotate it. Move it up by clicking and dragging on the manipulator's green arrow and click and drag on the red arc to rotate it around the X axis, until the ground is lit."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:137
msgid "In the *Inspector*, turn on *Shadow -> Enabled* by clicking the checkbox."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:139
msgid "|image16|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:141
msgid "At this point, your project should look like this."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:143
msgid "|image17|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:145
msgid "That's our starting point. In the next part, we will work on the player scene and base movement."
msgstr ""

View File

@@ -0,0 +1,229 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:4
msgid "Player scene and input actions"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:6
msgid "In the next two lessons, we will design the player scene, register custom input actions, and code player movement. By the end, you'll have a playable character that moves in eight directions."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:13
msgid "Create a new scene by going to the Scene menu in the top-left and clicking *New Scene*. Create a *KinematicBody* node as the root and name it *Player*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:16
msgid "|image0|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:18
msgid "Kinematic bodies are complementary to the area and rigid bodies used in the 2D game tutorial. Like rigid bodies, they can move and collide with the environment, but instead of being controlled by the physics engine, you dictate their movement. You will see how we use the node's unique features when we code the jump and squash mechanics."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:26
msgid "To learn more about the different physics node types, see the :ref:`doc_physics_introduction`."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:29
msgid "For now, we're going to create a basic rig for our character's 3D model. This will allow us to rotate the model later via code while it plays an animation."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:32
msgid "Add a *Spatial* node as a child of *Player* and name it *Pivot*. Then, in the FileSystem dock, expand the ``art/`` folder by double-clicking it and drag and drop ``player.glb`` onto the *Pivot* node."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:36
msgid "|image1|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:38
msgid "This should instantiate the model as a child of *Pivot*. You can rename it to *Character*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:41
msgid "|image2|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:45
msgid "The ``.glb`` files contain 3D scene data based on the open-source GLTF 2.0 specification. They're a modern and powerful alternative to a proprietary format like FBX, which Godot also supports. To produce these files, we designed the model in `Blender 3D <https://www.blender.org/>`__ and exported it to GLTF."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:50
msgid "As with all kinds of physics nodes, we need a collision shape for our character to collide with the environment. Select the *Player* node again and add a *CollisionShape*. In the *Inspector*, assign a *SphereShape* to the *Shape* property. The sphere's wireframe appears below the character."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:55
msgid "|image3|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:57
msgid "It will be the shape the physics engine uses to collide with the environment, so we want it to better fit the 3D model. Shrink it a bit by dragging the orange dot in the viewport. My sphere has a radius of about ``0.8`` meters."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:61
msgid "Then, move the shape up so its bottom roughly aligns with the grid's plane."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:63
msgid "|image4|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:65
msgid "You can toggle the model's visibility by clicking the eye icon next to the *Character* or the *Pivot* nodes."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:68
msgid "|image5|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:70
msgid "Save the scene as ``Player.tscn``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:72
msgid "With the nodes ready, we can almost get coding. But first, we need to define some input actions."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:76
msgid "Creating input actions"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:78
msgid "To move the character, we will listen to the player's input, like pressing the arrow keys. In Godot, while we could write all the key bindings in code, there's a powerful system that allows you to assign a label to a set of keys and buttons. This simplifies our scripts and makes them more readable."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:83
msgid "This system is the Input Map. To access its editor, head to the *Project* menu and select *Project Settings…*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:86
msgid "|image6|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:88
msgid "At the top, there are multiple tabs. Click on *Input Map*. This window allows you to add new actions at the top; they are your labels. In the bottom part, you can bind keys to these actions."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:92
msgid "|image7|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:94
msgid "Godot projects come with some predefined actions designed for user interface design, which we could use here. But we're defining our own to support gamepads."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:97
msgid "We're going to name our actions ``move_left``, ``move_right``, ``move_forward``, ``move_back``, and ``jump``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:100
msgid "To add an action, write its name in the bar at the top and press Enter."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:102
msgid "|image8|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:104
msgid "Create the five actions. Your window should have them all listed at the bottom."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:106
msgid "|image9|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:108
msgid "To bind a key or button to an action, click the \"+\" button to its right. Do this for ``move_left`` and in the drop-down menu, click *Key*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:111
msgid "|image10|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:113
msgid "This option allows you to add a keyboard input. A popup appears and waits for you to press a key. Press the left arrow key and click *OK*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:116
msgid "|image11|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:118
msgid "Do the same for the A key."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:120
msgid "|image12|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:122
msgid "Let's now add support for a gamepad's left joystick. Click the \"+\" button again but this time, select *Joy Axis*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:125
msgid "|image13|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:127
msgid "The popup gives you two drop-down menus. On the left, you can select a gamepad by index. *Device 0* corresponds to the first plugged gamepad, *Device 1* corresponds to the second, and so on. You can select the joystick and direction you want to bind to the input action on the right. Leave the default values and press the *Add* button."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:133
msgid "|image14|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:135
msgid "Do the same for the other input actions. For example, bind the right arrow, D, and the left joystick's right axis to ``move_right``. After binding all keys, your interface should look like this."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:139
msgid "|image15|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:141
msgid "We have the ``jump`` action left to set up. Bind the Space key and the gamepad's A button. To bind a gamepad's button, select the *Joy Button* option in the menu."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:144
msgid "|image16|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:146
msgid "Leave the default values and click the *Add* button."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:148
msgid "|image17|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:150
msgid "Your jump input action should look like this."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:152
msgid "|image18|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:154
msgid "That's all the actions we need for this game. You can use this menu to label any groups of keys and buttons in your projects."
msgstr ""
#: ../../docs/getting_started/first_3d_game/02.player_input.rst:157
msgid "In the next part, we'll code and test the player's movement."
msgstr ""

View File

@@ -0,0 +1,229 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:4
msgid "Moving the player with code"
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:6
msgid "It's time to code! We're going to use the input actions we created in the last part to move the character."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:9
msgid "Right-click the *Player* node and select *Attach Script* to add a new script to it. In the popup, set the *Template* to *Empty* before pressing the *Create* button."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:13
msgid "|image0|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:15
msgid "Let's start with the class's properties. We're going to define a movement speed, a fall acceleration representing gravity, and a velocity we'll use to move the character."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:48
msgid "These are common properties for a moving body. The ``velocity`` is a 3D vector combining a speed with a direction. Here, we define it as a property because we want to update and reuse its value across frames."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:54
msgid "The values are quite different from 2D code because distances are in meters. While in 2D, a thousand units (pixels) may only correspond to half of your screen's width, in 3D, it's a kilometer."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:58
msgid "Let's code the movement now. We start by calculating the input direction vector using the global ``Input`` object, in ``_physics_process()``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:108
msgid "Here, we're going to make all calculations using the ``_physics_process()`` virtual function. Like ``_process()``, it allows you to update the node every frame, but it's designed specifically for physics-related code like moving a kinematic or rigid body."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:115
msgid "To learn more about the difference between ``_process()`` and ``_physics_process()``, see :ref:`doc_idle_and_physics_processing`."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:118
msgid "We start by initializing a ``direction`` variable to ``Vector3.ZERO``. Then, we check if the player is pressing one or more of the ``move_*`` inputs and update the vector's ``x`` and ``z`` components accordingly. These correspond to the ground plane's axes."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:123
msgid "These four conditions give us eight possibilities and eight possible directions."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:125
msgid "In case the player presses, say, both W and D simultaneously, the vector will have a length of about ``1.4``. But if they press a single key, it will have a length of ``1``. We want the vector's length to be consistent. To do so, we can call its ``normalize()`` method."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:153
msgid "Here, we only normalize the vector if the direction has a length greater than zero, which means the player is pressing a direction key."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:156
msgid "In this case, we also get the *Pivot* node and call its ``look_at()`` method. This method takes a position in space to look at in global coordinates and the up direction. In this case, we can use the ``Vector3.UP`` constant."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:162
msgid "A node's local coordinates, like ``translation``, are relative to their parent. Global coordinates are relative to the world's main axes you can see in the viewport instead."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:166
msgid "In 3D, the property that contains a node's position is ``translation``. By adding the ``direction`` to it, we get a position to look at that's one meter away from the *Player*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:170
msgid "Then, we update the velocity. We have to calculate the ground velocity and the fall speed separately. Be sure to go back one tab so the lines are inside the ``_physics_process()`` function but outside the condition we just wrote."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:205
msgid "For the vertical velocity, we subtract the fall acceleration multiplied by the delta time every frame. Notice the use of the ``-=`` operator, which is a shorthand for ``variable = variable - ...``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:209
msgid "This line of code will cause our character to fall in every frame. This may seem strange if it's already on the floor. But we have to do this for the character to collide with the ground every frame."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:213
msgid "The physics engine can only detect interactions with walls, the floor, or other bodies during a given frame if movement and collisions happen. We will use this property later to code the jump."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:217
msgid "On the last line, we call ``KinematicBody.move_and_slide()``. It's a powerful method of the ``KinematicBody`` class that allows you to move a character smoothly. If it hits a wall midway through a motion, the engine will try to smooth it out for you."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:222
msgid "The function takes two parameters: our velocity and the up direction. It moves the character and returns a leftover velocity after applying collisions. When hitting the floor or a wall, the function will reduce or reset the speed in that direction from you. In our case, storing the function's returned value prevents the character from accumulating vertical momentum, which could otherwise get so big the character would move through the ground slab after a while."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:229
msgid "And that's all the code you need to move the character on the floor."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:231
msgid "Here is the complete ``Player.gd`` code for reference."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:322
msgid "Testing our player's movement"
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:324
msgid "We're going to put our player in the *Main* scene to test it. To do so, we need to instantiate the player and then add a camera. Unlike in 2D, in 3D, you won't see anything if your viewport doesn't have a camera pointing at something."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:328
msgid "Save your *Player* scene and open the *Main* scene. You can click on the *Main* tab at the top of the editor to do so."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:331
msgid "|image1|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:333
msgid "If you closed the scene before, head to the *FileSystem* dock and double-click ``Main.tscn`` to re-open it."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:336
msgid "To instantiate the *Player*, right-click on the *Main* node and select *Instance Child Scene*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:339
msgid "|image2|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:341
msgid "In the popup, double-click *Player.tscn*. The character should appear in the center of the viewport."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:345
msgid "Adding a camera"
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:347
msgid "Let's add the camera next. Like we did with our *Player*\\ 's *Pivot*, we're going to create a basic rig. Right-click on the *Main* node again and select *Add Child Node* this time. Create a new *Position3D*, name it *CameraPivot*, and add a *Camera* node as a child of it. Your scene tree should look like this."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:352
msgid "|image3|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:354
msgid "Notice the *Preview* checkbox that appears in the top-left when you have the *Camera* selected. You can click it to preview the in-game camera projection."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:357
msgid "|image4|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:359
msgid "We're going to use the *Pivot* to rotate the camera as if it was on a crane. Let's first split the 3D view to be able to freely navigate the scene and see what the camera sees."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:363
msgid "In the toolbar right above the viewport, click on *View*, then *2 Viewports*. You can also press :kbd:`Ctrl + 2` (:kbd:`Cmd + 2` on MacOS)."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:366
msgid "|image5|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:368
msgid "On the bottom view, select the *Camera* and turn on camera preview by clicking the checkbox."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:371
msgid "|image6|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:373
msgid "In the top view, move the camera about ``19`` units on the Z axis (the blue one)."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:376
msgid "|image7|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:378
msgid "Here's where the magic happens. Select the *CameraPivot* and rotate it ``45`` degrees around the X axis (using the red circle). You'll see the camera move as if it was attached to a crane."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:382
msgid "|image8|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:384
msgid "You can run the scene by pressing :kbd:`F6` and press the arrow keys to move the character."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:387
msgid "|image9|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:389
msgid "We can see some empty space around the character due to the perspective projection. In this game, we're going to use an orthographic projection instead to better frame the gameplay area and make it easier for the player to read distances."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:394
msgid "Select the *Camera* again and in the *Inspector*, set the *Projection* to *Orthogonal* and the *Size* to ``19``. The character should now look flatter and the ground should fill the background."
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:398
msgid "|image10|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:400
msgid "With that, we have both player movement and the view in place. Next, we will work on the monsters."
msgstr ""

View File

@@ -0,0 +1,201 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:4
msgid "Designing the mob scene"
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:6
msgid "In this part, you're going to code the monsters, which we'll call mobs. In the next lesson, we'll spawn them randomly around the playable area."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:9
msgid "Let's design the monsters themselves in a new scene. The node structure is going to be similar to the *Player* scene."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:12
msgid "Create a scene with, once again, a *KinematicBody* node as its root. Name it *Mob*. Add a *Spatial* node as a child of it, name it *Pivot*. And drag and drop the file ``mob.glb`` from the *FileSystem* dock onto the *Pivot* to add the monster's 3D model to the scene. You can rename the newly created *mob* node into *Character*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:18
msgid "|image0|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:20
msgid "We need a collision shape for our body to work. Right-click on the *Mob* node, the scene's root, and click *Add Child Node*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:23
msgid "|image1|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:25
msgid "Add a *CollisionShape*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:27
msgid "|image2|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:29
msgid "In the *Inspector*, assign a *BoxShape* to the *Shape* property."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:31
msgid "|image3|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:33
msgid "We should change its size to fit the 3D model better. You can do so interactively by clicking and dragging on the orange dots."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:36
msgid "The box should touch the floor and be a little thinner than the model. Physics engines work in such a way that if the player's sphere touches even the box's corner, a collision will occur. If the box is a little too big compared to the 3D model, you may die at a distance from the monster, and the game will feel unfair to the players."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:42
msgid "|image4|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:44
msgid "Notice that my box is taller than the monster. It is okay in this game because we're looking at the scene from above and using a fixed perspective. Collision shapes don't have to match the model exactly. It's the way the game feels when you test it that should dictate their form and size."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:50
msgid "Removing monsters off-screen"
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:52
msgid "We're going to spawn monsters at regular time intervals in the game level. If we're not careful, their count could increase to infinity, and we don't want that. Each mob instance has both a memory and a processing cost, and we don't want to pay for it when the mob's outside the screen."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:57
msgid "Once a monster leaves the screen, we don't need it anymore, so we can delete it. Godot has a node that detects when objects leave the screen, *VisibilityNotifier*, and we're going to use it to destroy our mobs."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:63
msgid "When you keep instancing an object in games, there's a technique you can use to avoid the cost of creating and destroying instances all the time called pooling. It consists of pre-creating an array of objects and reusing them over and over."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:68
msgid "When working with GDScript, you don't need to worry about this. The main reason to use pools is to avoid freezes with garbage-collected languages like C# or Lua. GDScript uses a different technique to manage memory, reference counting, which doesn't have that caveat. You can learn more about that here :ref:`doc_gdscript_basics_memory_management`."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:74
msgid "Select the *Mob* node and add a *VisibilityNotifier* as a child of it. Another box, pink this time, appears. When this box completely leaves the screen, the node will emit a signal."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:78
msgid "|image5|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:80
msgid "Resize it using the orange dots until it covers the entire 3D model."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:82
msgid "|image6|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:85
msgid "Coding the mob's movement"
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:87
msgid "Let's implement the monster's motion. We're going to do this in two steps. First, we'll write a script on the *Mob* that defines a function to initialize the monster. We'll then code the randomized spawn mechanism in the *Main* scene and call the function from there."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:92
msgid "Attach a script to the *Mob*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:94
msgid "|image7|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:96
msgid "Here's the movement code to start with. We define two properties, ``min_speed`` and ``max_speed``, to define a random speed range. We then define and initialize the ``velocity``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:137
msgid "Similarly to the player, we move the mob every frame by calling ``KinematicBody``\\ 's ``move_and_slide()`` method. This time, we don't update the ``velocity`` every frame: we want the monster to move at a constant speed and leave the screen, even if it were to hit an obstacle."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:142
msgid "We need to define another function to calculate the start velocity. This function will turn the monster towards the player and randomize both its angle of motion and its velocity."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:146
msgid "The function will take a ``start_position``, the mob's spawn position, and the ``player_position`` as its arguments."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:149
msgid "We first position the mob at ``start_position``. Then, we turn it towards the player using the ``look_at()`` method and randomize the angle by rotating a random amount around the Y axis. Below, ``rand_range()`` outputs a random value between ``-PI / 4`` radians and ``PI / 4`` radians."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:177
msgid "We then calculate a random speed using ``rand_range()`` once again and we use it to calculate the velocity."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:180
msgid "We start by creating a 3D vector pointing forward, multiply it by our ``random_speed``, and finally rotate it using the ``Vector3`` class's ``rotated()`` method."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:212
msgid "Leaving the screen"
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:214
msgid "We still have to destroy the mobs when they leave the screen. To do so, we'll connect our *VisibilityNotifier* node's ``screen_exited`` signal to the *Mob*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:217
msgid "Head back to the 3D viewport by clicking on the *3D* label at the top of the editor. You can also press :kbd:`Ctrl + F2` (:kbd:`Alt + 2` on macOS)."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:220
msgid "|image8|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:222
msgid "Select the *VisibilityNotifier* node and on the right side of the interface, navigate to the *Node* dock. Double-click the *screen_exited()* signal."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:225
msgid "|image9|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:227
msgid "Connect the signal to the *Mob*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:229
msgid "|image10|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:231
msgid "This will take you back to the script editor and add a new function for you, ``_on_VisibilityNotifier_screen_exited()``. From it, call the ``queue_free()`` method. This will destroy the mob instance when the *VisibilityNotifier* \\'s box leaves the screen."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:251
msgid "Our monster is ready to enter the game! In the next part, you will spawn monsters in the game level."
msgstr ""
#: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:254
msgid "Here is the complete ``Mob.gd`` script for reference."
msgstr ""

View File

@@ -0,0 +1,341 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:4
msgid "Spawning monsters"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:6
msgid "In this part, we're going to spawn monsters along a path randomly. By the end, you will have monsters roaming the game board."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:9
msgid "|image0|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:11
msgid "Double-click on ``Main.tscn`` in the *FileSystem* dock to open the *Main* scene."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:13
msgid "Before drawing the path, we're going to change the game resolution. Our game has a default window size of ``1024x600``. We're going to set it to ``720x540``, a nice little box."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:17
msgid "Go to *Project -> Project Settings*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:19
msgid "|image1|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:21
msgid "In the left menu, navigate down to *Display -> Window*. On the right, set the *Width* to ``720`` and the *Height* to ``540``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:24
msgid "|image2|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:27
msgid "Creating the spawn path"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:29
msgid "Like you did in the 2D game tutorial, you're going to design a path and use a *PathFollow* node to sample random locations on it."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:32
msgid "In 3D though, it's a bit more complicated to draw the path. We want it to be around the game view so monsters appear right outside the screen. But if we draw a path, we won't see it from the camera preview."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:36
msgid "To find the view's limits, we can use some placeholder meshes. Your viewport should still be split into two parts, with the camera preview at the bottom. If that isn't the case, press :kbd:`Ctrl + 2` (:kbd:`Cmd + 2` on MacOS) to split the view into two. Select the *Camera* node and click the *Preview* checkbox in the bottom viewport."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:42
msgid "|image3|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:45
msgid "Adding placeholder cylinders"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:47
msgid "Let's add the placeholder meshes. Add a new *Spatial* node as a child of the *Main* node and name it *Cylinders*. We'll use it to group the cylinders. As a child of it, add a *MeshInstance* node."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:51
msgid "|image4|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:53
msgid "In the *Inspector*, assign a *CylinderMesh* to the *Mesh* property."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:55
msgid "|image5|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:57
msgid "Set the top viewport to the top orthogonal view using the menu in the viewport's top-left corner. Alternatively, you can press the keypad's 7 key."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:60
msgid "|image6|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:62
msgid "The grid is a bit distracting for me. You can toggle it by going to the *View* menu in the toolbar and clicking *View Grid*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:65
msgid "|image7|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:67
msgid "You now want to move the cylinder along the ground plane, looking at the camera preview in the bottom viewport. I recommend using grid snap to do so. You can toggle it by clicking the magnet icon in the toolbar or pressing Y."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:71
msgid "|image8|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:73
msgid "Place the cylinder so it's right outside the camera's view in the top-left corner."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:76
msgid "|image9|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:78
msgid "We're going to create copies of the mesh and place them around the game area. Press :kbd:`Ctrl + D` (:kbd:`Cmd + D` on MacOS) to duplicate the node. You can also right-click the node in the *Scene* dock and select *Duplicate*. Move the copy down along the blue Z axis until it's right outside the camera's preview."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:83
msgid "Select both cylinders by pressing the :kbd:`Shift` key and clicking on the unselected one and duplicate them."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:86
msgid "|image10|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:88
msgid "Move them to the right by dragging the red X axis."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:90
msgid "|image11|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:92
msgid "They're a bit hard to see in white, aren't they? Let's make them stand out by giving them a new material."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:95
msgid "In 3D, materials define a surface's visual properties like its color, how it reflects light, and more. We can use them to change the color of a mesh."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:98
msgid "We can update all four cylinders at once. Select all the mesh instances in the *Scene* dock. To do so, you can click on the first one and Shift click on the last one."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:102
msgid "|image12|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:104
msgid "In the *Inspector*, expand the *Material* section and assign a *SpatialMaterial* to slot *0*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:107
msgid "|image13|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:109
msgid "Click the sphere icon to open the material resource. You get a preview of the material and a long list of sections filled with properties. You can use these to create all sorts of surfaces, from metal to rock or water."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:113
msgid "Expand the *Albedo* section and set the color to something that contrasts with the background, like a bright orange."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:116
msgid "|image14|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:118
msgid "We can now use the cylinders as guides. Fold them in the *Scene* dock by clicking the grey arrow next to them. Moving forward, you can also toggle their visibility by clicking the eye icon next to *Cylinders*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:122
msgid "|image15|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:124
msgid "Add a *Path* node as a child of *Main*. In the toolbar, four icons appear. Click the *Add Point* tool, the icon with the green \"+\" sign."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:127
msgid "|image16|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:129
msgid "You can hover any icon to see a tooltip describing the tool."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:131
msgid "Click in the center of each cylinder to create a point. Then, click the *Close Curve* icon in the toolbar to close the path. If any point is a bit off, you can click and drag on it to reposition it."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:135
msgid "|image17|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:137
msgid "Your path should look like this."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:139
msgid "|image18|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:141
msgid "To sample random positions on it, we need a *PathFollow* node. Add a *PathFollow* as a child of the *Path*. Rename the two nodes to *SpawnPath* and *SpawnLocation*, respectively. It's more descriptive of what we'll use them for."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:145
msgid "|image19|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:147
msgid "With that, we're ready to code the spawn mechanism."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:150
msgid "Spawning monsters randomly"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:152
msgid "Right-click on the *Main* node and attach a new script to it."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:154
msgid "We first export a variable to the *Inspector* so that we can assign ``Mob.tscn`` or any other monster to it."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:157
msgid "Then, as we're going to spawn the monsters procedurally, we want to randomize numbers every time we play the game. If we don't do that, the monsters will always spawn following the same sequence."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:190
msgid "We want to spawn mobs at regular time intervals. To do this, we need to go back to the scene and add a timer. Before that, though, we need to assign the ``Mob.tscn`` file to the ``mob_scene`` property."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:194
msgid "Head back to the 3D screen and select the *Main* node. Drag ``Mob.tscn`` from the *FileSystem* dock to the *Mob Scene* slot in the *Inspector*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:197
msgid "|image20|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:199
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
msgid "|image21|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:203
msgid "In the *Inspector*, set its *Wait Time* to ``0.5`` seconds and turn on *Autostart* so it automatically starts when we run the game."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:206
msgid "|image22|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:208
msgid "Timers emit a ``timeout`` signal every time they reach the end of their *Wait Time*. By default, they restart automatically, emitting the signal in a cycle. We can connect to this signal from the *Main* node to spawn monsters every ``0.5`` seconds."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:213
msgid "With the *MobTimer* still selected, head to the *Node* dock on the right and double-click the ``timeout`` signal."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:216
msgid "|image23|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:218
msgid "Connect it to the *Main* node."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:220
msgid "|image24|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:222
msgid "This will take you back to the script, with a new empty ``_on_MobTimer_timeout()`` function."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:225
msgid "Let's code the mob spawning logic. We're going to:"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:227
msgid "Instantiate the mob scene."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:228
msgid "Sample a random position on the spawn path."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:229
msgid "Get the player's position."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:230
msgid "Add the mob as a child of the *Main* node."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:231
msgid "Call the mob's ``initialize()`` method, passing it the random position and the player's position."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:272
msgid "Above, ``randf()`` produces a random value between ``0`` and ``1``, which is what the *PathFollow* node's ``unit_offset`` expects."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:275
msgid "Here is the complete ``Main.gd`` script so far, for reference."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:327
msgid "You can test the scene by pressing :kbd:`F6`. You should see the monsters spawn and move in a straight line."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:330
msgid "|image25|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:332
msgid "For now, they bump and slide against one another when their paths cross. We'll address this in the next part."
msgstr ""

View File

@@ -0,0 +1,281 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:4
msgid "Jumping and squashing monsters"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:6
msgid "In this part, we'll add the ability to jump, to squash the monsters. In the next lesson, we'll make the player die when a monster hits them on the ground."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:9
msgid "First, we have to change a few settings related to physics interactions. Enter the world of :ref:`physics layers <doc_physics_introduction_collision_layers_and_masks>`."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:14
msgid "Controlling physics interactions"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:16
msgid "Physics bodies have access to two complementary properties: layers and masks. Layers define on which physics layer(s) an object is."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:19
msgid "Masks control the layers that a body will listen to and detect. This affects collision detection. When you want two bodies to interact, you need at least one to have a mask corresponding to the other."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:23
msgid "If that's confusing, don't worry, we'll see three examples in a second."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:25
msgid "The important point is that you can use layers and masks to filter physics interactions, control performance, and remove the need for extra conditions in your code."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:29
msgid "By default, all physics bodies and areas are set to both layer and mask ``0``. This means they all collide with each other."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:32
msgid "Physics layers are represented by numbers, but we can give them names to keep track of what's what."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:36
msgid "Setting layer names"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:38
msgid "Let's give our physics layers a name. Go to *Project -> Project Settings*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:40
msgid "|image0|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:42
msgid "In the left menu, navigate down to *Layer Names -> 3D Physics*. You can see a list of layers with a field next to each of them on the right. You can set their names there. Name the first three layers *player*, *enemies*, and *world*, respectively."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:47
msgid "|image1|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:49
msgid "Now, we can assign them to our physics nodes."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:52
msgid "Assigning layers and masks"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:54
msgid "In the *Main* scene, select the *Ground* node. In the *Inspector*, expand the *Collision* section. There, you can see the node's layers and masks as a grid of buttons."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:58
msgid "|image2|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:60
msgid "The ground is part of the world, so we want it to be part of the third layer. Click the lit button to toggle off the first *Layer* and toggle on the third one. Then, toggle off the *Mask* by clicking on it."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:64
msgid "|image3|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:66
msgid "As I mentioned above, the *Mask* property allows a node to listen to interaction with other physics objects, but we don't need it to have collisions. The *Ground* doesn't need to listen to anything; it's just there to prevent creatures from falling."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:71
msgid "Note that you can click the \"...\" button on the right side of the properties to see a list of named checkboxes."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:74
msgid "|image4|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:76
msgid "Next up are the *Player* and the *Mob*. Open ``Player.tscn`` by double-clicking the file in the *FileSystem* dock."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:79
msgid "Select the *Player* node and set its *Collision -> Mask* to both \"enemies\" and \"world\". You can leave the default *Layer* property as the first layer is the \"player\" one."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:83
msgid "|image5|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:85
msgid "Then, open the *Mob* scene by double-clicking on ``Mob.tscn`` and select the *Mob* node."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:88
msgid "Set its *Collision -> Layer* to \"enemies\" and unset its *Collision -> Mask*, leaving the mask empty."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:91
msgid "|image6|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:93
msgid "These settings mean the monsters will move through one another. If you want the monsters to collide with and slide against each other, turn on the \"enemies\" mask."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:99
msgid "The mobs don't need to mask the \"world\" layer because they only move on the XZ plane. We don't apply any gravity to them by design."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:103
msgid "Jumping"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:105
msgid "The jumping mechanic itself requires only two lines of code. Open the *Player* script. We need a value to control the jump's strength and update ``_physics_process()`` to code the jump."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:109
msgid "After the line that defines ``fall_acceleration``, at the top of the script, add the ``jump_impulse``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:128
msgid "Inside ``_physics_process()``, add the following code before the line where we called ``move_and_slide()``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:158
msgid "That's all you need to jump!"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:160
msgid "The ``is_on_floor()`` method is a tool from the ``KinematicBody`` class. It returns ``true`` if the body collided with the floor in this frame. That's why we apply gravity to the *Player*: so we collide with the floor instead of floating over it like the monsters."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:165
msgid "If the character is on the floor and the player presses \"jump\", we instantly give them a lot of vertical speed. In games, you really want controls to be responsive and giving instant speed boosts like these, while unrealistic, feel great."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:170
msgid "Notice that the Y axis is positive upwards. That's unlike 2D, where the Y axis is positive downward."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:174
msgid "Squashing monsters"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:176
msgid "Let's add the squash mechanic next. We're going to make the character bounce over monsters and kill them at the same time."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:179
msgid "We need to detect collisions with a monster and to differentiate them from collisions with the floor. To do so, we can use Godot's :ref:`group <doc_groups>` tagging feature."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:183
msgid "Open the scene ``Mob.tscn`` again and select the *Mob* node. Go to the *Node* dock on the right to see a list of signals. The *Node* dock has two tabs: *Signals*, which you've already used, and *Groups*, which allows you to assign tags to nodes."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:188
msgid "Click on it to reveal a field where you can write a tag name. Enter \"mob\" in the field and click the *Add* button."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:191
msgid "|image7|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:193
msgid "An icon appears in the *Scene* dock to indicate the node is part of at least one group."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:196
msgid "|image8|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:198
msgid "We can now use the group from the code to distinguish collisions with monsters from collisions with the floor."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:202
msgid "Coding the squash mechanic"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:204
msgid "Head back to the *Player* script to code the squash and bounce."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:206
msgid "At the top of the script, we need another property, ``bounce_impulse``. When squashing an enemy, we don't necessarily want the character to go as high up as when jumping."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:225
msgid "Then, at the bottom of ``_physics_process()``, add the following loop. With ``move_and_slide()``, Godot makes the body move sometimes multiple times in a row to smooth out the character's motion. So we have to loop over all collisions that may have happened."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:230
msgid "In every iteration of the loop, we check if we landed on a mob. If so, we kill it and bounce."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:233
msgid "With this code, if no collisions occurred on a given frame, the loop won't run."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:276
msgid "That's a lot of new functions. Here's some more information about them."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:278
msgid "The functions ``get_slide_count()`` and ``get_slide_collision()`` both come from the :ref:`KinematicBody<class_KinematicBody>` class and are related to ``move_and_slide()``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:282
msgid "``get_slide_collision()`` returns a :ref:`KinematicCollision<class_KinematicCollision>` object that holds information about where and how the collision occurred. For example, we use its ``collider`` property to check if we collided with a \"mob\" by calling ``is_in_group()`` on it: ``collision.collider.is_in_group(\"mob\")``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:290
msgid "The method ``is_in_group()`` is available on every :ref:`Node<class_Node>`."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:292
msgid "To check that we are landing on the monster, we use the vector dot product: ``Vector3.UP.dot(collision.normal) > 0.1``. The collision normal is a 3D vector that is perpendicular to the plane where the collision occurred. The dot product allows us to compare it to the up direction."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:297
msgid "With dot products, when the result is greater than ``0``, the two vectors are at an angle of fewer than 90 degrees. A value higher than ``0.1`` tells us that we are roughly above the monster."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:301
msgid "We are calling one undefined function, ``mob.squash()``. We have to add it to the Mob class."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:304
msgid "Open the script ``Mob.gd`` by double-clicking on it in the *FileSystem* dock. At the top of the script, we want to define a new signal named ``squashed``. And at the bottom, you can add the squash function, where we emit the signal and destroy the mob."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:338
msgid "We will use the signal to add points to the score in the next lesson."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:340
msgid "With that, you should be able to kill monsters by jumping on them. You can press :kbd:`F5` to try the game and set ``Main.tscn`` as your project's main scene."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:343
msgid "However, the player won't die yet. We'll work on that in the next part."
msgstr ""

View File

@@ -0,0 +1,153 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:4
msgid "Killing the player"
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:6
msgid "We can kill enemies by jumping on them, but the player still can't die. Let's fix this."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:9
msgid "We want to detect being hit by an enemy differently from squashing them. We want the player to die when they're moving on the floor, but not if they're in the air. We could use vector math to distinguish the two kinds of collisions. Instead, though, we will use an *Area* node, which works well for hitboxes."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:16
msgid "Hitbox with the Area node"
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:18
msgid "Head back to the *Player* scene and add a new *Area* node. Name it *MobDetector*. Add a *CollisionShape* node as a child of it."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:21
msgid "|image0|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:23
msgid "In the *Inspector*, assign a cylinder shape to it."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:25
msgid "|image1|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:27
msgid "Here is a trick you can use to make the collisions only happen when the player is on the ground or close to it. You can reduce the cylinder's height and move it up to the top of the character. This way, when the player jumps, the shape will be too high up for the enemies to collide with it."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:33
msgid "|image2|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:35
msgid "You also want the cylinder to be wider than the sphere. This way, the player gets hit before colliding and being pushed on top of the monster's collision box."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:39
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."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:47
msgid "|image3|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:49
msgid "When areas detect a collision, they emit signals. We're going to connect one to the *Player* node. In the *Node* tab, double-click the ``body_entered`` signal and connect it to the *Player*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:53
msgid "|image4|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:55
msgid "The *MobDetector* will emit ``body_entered`` when a *KinematicBody* or a *RigidBody* node enters it. As it only masks the \"enemies\" physics layers, it will only detect the *Mob* nodes."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:59
msgid "Code-wise, we're going to do two things: emit a signal we'll later use to end the game and destroy the player. We can wrap these operations in a ``die()`` function that helps us put a descriptive label on the code."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:102
msgid "Try the game again by pressing :kbd:`F5`. If everything is set up correctly, the character should die when an enemy runs into it."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:105
msgid "However, note that this depends entirely on the size and position of the *Player* and the *Mob*\\ 's collision shapes. You may need to move them and resize them to achieve a tight game feel."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:110
msgid "Ending the game"
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:112
msgid "We can use the *Player*\\ 's ``hit`` signal to end the game. All we need to do is connect it to the *Main* node and stop the *MobTimer* in reaction."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:116
msgid "Open ``Main.tscn``, select the *Player* node, and in the *Node* dock, connect its ``hit`` signal to the *Main* node."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:119
msgid "|image5|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:121
msgid "Get and stop the timer in the ``_on_Player_hit()`` function."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:137
msgid "If you try the game now, the monsters will stop spawning when you die, and the remaining ones will leave the screen."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:140
msgid "You can pat yourself in the back: you prototyped a complete 3D game, even if it's still a bit rough."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:143
msgid "From there, we'll add a score, the option to retry the game, and you'll see how you can make the game feel much more alive with minimalistic animations."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:148
msgid "Code checkpoint"
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:150
msgid "Here are the complete scripts for the *Main*, *Mob*, and *Player* nodes, for reference. You can use them to compare and check your code."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:153
msgid "Starting with ``Main.gd``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:222
msgid "Next is ``Mob.gd``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:307
msgid "Finally, the longest script, ``Player.gd``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/07.killing_player.rst:460
msgid "See you in the next lesson to add the score and the retry option."
msgstr ""

View File

@@ -0,0 +1,389 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:4
msgid "Score and replay"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:6
msgid "In this part, we'll add the score, music playback, and the ability to restart the game."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:9
msgid "We have to keep track of the current score in a variable and display it on screen using a minimal interface. We will use a text label to do that."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:12
msgid "In the main scene, add a new *Control* node as a child of *Main* and name it *UserInterface*. You will automatically be taken to the 2D screen, where you can edit your User Interface (UI)."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:16
msgid "Add a *Label* node and rename it to *ScoreLabel*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:18
msgid "|image0|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:20
msgid "In the *Inspector*, set the *Label*'s *Text* to a placeholder like \"Score: 0\"."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:22
msgid "|image1|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:24
msgid "Also, the text is white by default, like our game's background. We need to change its color to see it at runtime."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:27
msgid "Scroll down to *Custom Colors* and click the black box next to *Font Color* to tint the text."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:30
msgid "|image2|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:32
msgid "Pick a dark tone so it contrasts well with the 3D scene."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:34
msgid "|image3|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:36
msgid "Finally, click and drag on the text in the viewport to move it away from the top-left corner."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:39
msgid "|image4|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:41
msgid "The *UserInterface* node allows us to group our UI in a branch of the scene tree and use a theme resource that will propagate to all its children. We'll use it to set our game's font."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:46
msgid "Creating a UI theme"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:48
msgid "Once again, select the *UserInterface* node. In the *Inspector*, create a new theme resource in *Theme -> Theme*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:51
msgid "|image5|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:53
msgid "Click on it to open the theme editor In the bottom panel. It gives you a preview of how all the built-in UI widgets will look with your theme resource."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:56
msgid "|image6|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:58
msgid "By default, a theme only has one property, the *Default Font*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:62
msgid "You can add more properties to the theme resource to design complex user interfaces, but that is beyond the scope of this series. To learn more about creating and editing themes, see :ref:`doc_gui_skinning`."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:66
msgid "Click the *Default Font* property and create a new *DynamicFont*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:68
msgid "|image7|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:70
msgid "Expand the *DynamicFont* by clicking on it and expand its *Font* section. There, you will see an empty *Font Data* field."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:73
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)."
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."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:82
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
msgid "|image9|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:88
msgid "Keeping track of the score"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:90
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
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
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
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
msgid "|image10|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:119
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
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
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
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
msgid "There, we increment the score and update the displayed text."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:165
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
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
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
msgid "|image11|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:181
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
msgid "Retrying the game"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:190
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
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
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
msgid "|image12|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:203
msgid "Open it and apply the *Full Rect* command."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:205
msgid "|image13|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:207
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
msgid "|image14|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:212
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
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
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
msgid "|image15|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:226
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
msgid "|image16|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:231
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
msgid "|image17|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:237
msgid "Coding the retry option"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:239
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
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
msgid "Then, when the player gets hit, we show the overlay."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:277
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
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
msgid "The function ``get_tree()`` gives us access to the global :ref:`SceneTree <class_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
msgid "Adding music"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:310
msgid "To add music that plays continuously in the background, we're going to use another feature in Godot: :ref:`autoloads <doc_singletons_autoload>`."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:313
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
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
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
msgid "|image18|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:326
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
msgid "|image19|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:331
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
msgid "|image20|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:338
msgid "Save the scene as ``MusicPlayer.tscn``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:340
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
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
msgid "|image21|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:349
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
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
msgid "|image22|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:358
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
msgid "|image23|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:364
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
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
msgid "Here is the complete ``Main.gd`` script for reference."
msgstr ""

View File

@@ -0,0 +1,345 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:4
msgid "Character animation"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:6
msgid "In this final lesson, we'll use Godot's built-in animation tools to make our characters float and flap. You'll learn to design animations in the editor and use code to make your game feel alive."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:10
msgid "|image0|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:12
msgid "We'll start with an introduction to using the animation editor."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:15
msgid "Using the animation editor"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:17
msgid "The engine comes with tools to author animations in the editor. You can then use the code to play and control them at runtime."
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."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:22
msgid "The *Animation* dock appears in the bottom panel."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:24
msgid "|image1|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:26
msgid "It features a toolbar and the animation drop-down menu at the top, a track editor in the middle that's currently empty, and filter, snap, and zoom options at the bottom."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:30
msgid "Let's create an animation. Click on *Animation -> New*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:32
msgid "|image2|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:34
msgid "Name the animation \"float\"."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:36
msgid "|image3|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:38
msgid "Once you created the animation, the timeline appears with numbers representing time in seconds."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:41
msgid "|image4|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:43
msgid "We want the animation to start playback automatically at the start of the game. Also, it should loop."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:46
msgid "To do so, you can click the button with an \"A+\" icon in the animation toolbar and the looping arrows, respectively."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:49
msgid "|image5|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:51
msgid "You can also pin the animation editor by clicking the pin icon in the top-right. This prevents it from folding when you click on the viewport and deselect the nodes."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:55
msgid "|image6|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:57
msgid "Set the animation duration to ``1.2`` seconds in the top-right of the dock."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:59
msgid "|image7|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:61
msgid "You should see the gray ribbon widen a bit. It shows you the start and end of your animation and the vertical blue line is your time cursor."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:64
msgid "|image8|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:66
msgid "You can click and drag the slider in the bottom-right to zoom in and out of the timeline."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:69
msgid "|image9|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:72
msgid "The float animation"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:74
msgid "With the animation player node, you can animate most properties on as many nodes as you need. Notice the key icon next to properties in the *Inspector*. You can click any of them to create a keyframe, a time and value pair for the corresponding property. The keyframe gets inserted where your time cursor is in the timeline."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:80
msgid "Let's insert our first keys. Here, we will animate both the translation and the rotation of the *Character* node."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:83
msgid "Select the *Character* and click the key icon next to *Translation* in the *Inspector*. Do the same for *Rotation Degrees*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:86
msgid "|image10|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:88
msgid "Two tracks appear in the editor with a diamond icon representing each keyframe."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:90
msgid "|image11|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:92
msgid "You can click and drag on the diamonds to move them in time. Move the translation key to ``0.2`` seconds and the rotation key to ``0.1`` seconds."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:95
msgid "|image12|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:97
msgid "Move the time cursor to ``0.5`` seconds by clicking and dragging on the gray timeline. In the *Inspector*, set the *Translation*'s *Y* axis to about ``0.65`` meters and the *Rotation Degrees*' *X* axis to ``8``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:101
msgid "|image13|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:103
msgid "Create a keyframe for both properties and shift the translation key to ``0.7`` seconds by dragging it on the timeline."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:106
msgid "|image14|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:110
msgid "A lecture on the principles of animation is beyond the scope of this tutorial. Just note that you don't want to time and space everything evenly. Instead, animators play with timing and spacing, two core animation principles. You want to offset and contrast in your character's motion to make them feel alive."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:116
msgid "Move the time cursor to the end of the animation, at ``1.2`` seconds. Set the Y translation to about ``0.35`` and the X rotation to ``-9`` degrees. Once again, create a key for both properties."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:120
msgid "You can preview the result by clicking the play button or pressing :kbd:`Shift + D`. Click the stop button or press :kbd:`S` to stop playback."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:123
msgid "|image15|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:125
msgid "You can see that the engine interpolates between your keyframes to produce a continuous animation. At the moment, though, the motion feels very robotic. This is because the default interpolation is linear, causing constant transitions, unlike how living things move in the real world."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:130
msgid "We can control the transition between keyframes using easing curves."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:132
msgid "Click and drag around the first two keys in the timeline to box select them."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:134
msgid "|image16|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:136
msgid "You can edit the properties of both keys simultaneously in the *Inspector*, where you can see an *Easing* property."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:139
msgid "|image17|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:141
msgid "Click and drag on the curve, pulling it towards the left. This will make it ease-out, that is to say, transition fast initially and slow down as the time cursor reaches the next keyframe."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:145
msgid "|image18|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:147
msgid "Play the animation again to see the difference. The first half should already feel a bit bouncier."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:150
msgid "Apply an ease-out to the second keyframe in the rotation track."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:152
msgid "|image19|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:154
msgid "Do the opposite for the second translation keyframe, dragging it to the right."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:156
msgid "|image20|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:158
msgid "Your animation should look something like this."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:160
msgid "|image21|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:164
msgid "Animations update the properties of the animated nodes every frame, overriding initial values. If we directly animated the *Player* node, it would prevent us from moving it in code. This is where the *Pivot* node comes in handy: even though we animated the *Character*, we can still move and rotate the *Pivot* and layer changes on top of the animation in a script."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:171
msgid "If you play the game, the player's creature will now float!"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:173
msgid "If the creature is a little too close to the floor, you can move the *Pivot* up to offset it."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:177
msgid "Controlling the animation in code"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:179
msgid "We can use code to control the animation playback based on the player's input. Let's change the animation speed when the character is moving."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:182
msgid "Open the *Player*'s script by clicking the script icon next to it."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:184
msgid "|image22|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:186
msgid "In ``_physics_process()``, after the line where we check the ``direction`` vector, add the following code."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:216
msgid "This code makes it so when the player moves, we multiply the playback speed by ``4``. When they stop, we reset it to normal."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:219
msgid "We mentioned that the pivot could layer transforms on top of the animation. We can make the character arc when jumping using the following line of code. Add it at the end of ``_physics_process()``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:240
msgid "Animating the mobs"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:242
msgid "Here's another nice trick with animations in Godot: as long as you use a similar node structure, you can copy them to different scenes."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:245
msgid "For example, both the *Mob* and the *Player* scenes have a *Pivot* and a *Character* node, so we can reuse animations between them."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:248
msgid "We're going to duplicate the animation using a feature called \"merge from scene\"."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:251
msgid "Open the *Mob* scene, right-click on the *Mob* node and select *Merge From Scene*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:254
msgid "|image23|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:256
msgid "Double-click ``Player.tscn`` to open it and import the *AnimationPlayer*. That's it; all monsters will now play the float animation."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:259
msgid "We can change the playback speed based on the creature's ``random_speed``. Open the *Mob*'s script and at the end of the ``initialize()`` function, add the following line."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:278
msgid "And with that, you finished coding your first complete 3D game."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:280
msgid "**Congratulations**!"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:282
msgid "In the next part, we'll quickly recap what you learned and give you some links to keep learning more. But for now, here are the complete ``Player.gd`` and ``Mob.gd`` so you can check your code against them."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:286
msgid "Here's the *Player* script."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:453
msgid "And the *Mob*'s script."
msgstr ""

View File

@@ -0,0 +1,73 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/first_3d_game/going_further.rst:4
msgid "Going further"
msgstr ""
#: ../../docs/getting_started/first_3d_game/going_further.rst:6
msgid "You can pat yourself on the back for having completed your first 3D game with Godot."
msgstr ""
#: ../../docs/getting_started/first_3d_game/going_further.rst:9
msgid "In this series, we went over a wide range of techniques and editor features. Hopefully, youve witnessed how intuitive Godots scene system can be and learned a few tricks you can apply in your projects."
msgstr ""
#: ../../docs/getting_started/first_3d_game/going_further.rst:13
msgid "But we just scratched the surface: Godot has a lot more in store for you to save time creating games. And you can learn all that by browsing the documentation."
msgstr ""
#: ../../docs/getting_started/first_3d_game/going_further.rst:16
msgid "Where should you begin? Below, youll find a few pages to start exploring and build upon what youve learned so far."
msgstr ""
#: ../../docs/getting_started/first_3d_game/going_further.rst:19
msgid "But before that, heres a link to download a completed version of the project: `<https://github.com/GDQuest/godot-3d-dodge-the-creeps>`_."
msgstr ""
#: ../../docs/getting_started/first_3d_game/going_further.rst:23
msgid "Exploring the manual"
msgstr ""
#: ../../docs/getting_started/first_3d_game/going_further.rst:25
msgid "The manual is your ally whenever you have a doubt or youre curious about a feature. It does not contain tutorials about specific game genres or mechanics. Instead, it explains how Godot works in general. In it, you will find information about 2D, 3D, physics, rendering and performance, and much more."
msgstr ""
#: ../../docs/getting_started/first_3d_game/going_further.rst:30
msgid "Here are the sections we recommend you to explore next:"
msgstr ""
#: ../../docs/getting_started/first_3d_game/going_further.rst:32
msgid "Read the :ref:`Scripting section <toc-scripting-core-features>` to learn essential programming features youll use in every project."
msgstr ""
#: ../../docs/getting_started/first_3d_game/going_further.rst:34
msgid "The :ref:`3D <toc-learn-features-3d>` and :ref:`Physics <toc-learn-features-physics>` sections will teach you more about 3D game creation in the engine."
msgstr ""
#: ../../docs/getting_started/first_3d_game/going_further.rst:36
msgid ":ref:`Inputs <toc-learn-features-inputs>` is another important one for any game project."
msgstr ""
#: ../../docs/getting_started/first_3d_game/going_further.rst:38
msgid "You can start with these or, if you prefer, look at the sidebar menu on the left and pick your options."
msgstr ""
#: ../../docs/getting_started/first_3d_game/going_further.rst:41
msgid "We hope you enjoyed this tutorial series, and were looking forward to seeing what you achieve using Godot."
msgstr ""

View File

@@ -0,0 +1,85 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/first_3d_game/index.rst:4
msgid "Your first 3D game"
msgstr ""
#: ../../docs/getting_started/first_3d_game/index.rst:6
msgid "In this step-by-step tutorial series, you will create your first complete 3D game with Godot. By the end of the series, you will have a simple yet finished project of your own like the animated gif below."
msgstr ""
#: ../../docs/getting_started/first_3d_game/index.rst:10
msgid "|image0|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/index.rst:12
msgid "The game we'll code here is similar to :ref:`doc_your_first_2d_game`, with a twist: you can now jump and your goal is to squash the creeps. This way, you will both **recognize patterns** you learned in the previous tutorial and **build upon them** with new code and features."
msgstr ""
#: ../../docs/getting_started/first_3d_game/index.rst:17
msgid "You will learn to:"
msgstr ""
#: ../../docs/getting_started/first_3d_game/index.rst:19
msgid "Work with 3D coordinates with a jumping mechanic."
msgstr ""
#: ../../docs/getting_started/first_3d_game/index.rst:20
msgid "Use kinematic bodies to move 3D characters and detect when and how they collide."
msgstr ""
#: ../../docs/getting_started/first_3d_game/index.rst:22
msgid "Use physics layers and a group to detect interactions with specific entities."
msgstr ""
#: ../../docs/getting_started/first_3d_game/index.rst:23
msgid "Code basic procedural gameplay by instancing monsters at regular time intervals."
msgstr ""
#: ../../docs/getting_started/first_3d_game/index.rst:25
msgid "Design a movement animation and change its speed at run-time."
msgstr ""
#: ../../docs/getting_started/first_3d_game/index.rst:26
msgid "Draw a user interface on a 3D game."
msgstr ""
#: ../../docs/getting_started/first_3d_game/index.rst:28
msgid "And more."
msgstr ""
#: ../../docs/getting_started/first_3d_game/index.rst:30
msgid "This tutorial is for beginners who followed the complete getting started series. We'll start slow with detailed instructions and shorten them as we do similar steps. If you're an experienced programmer, you can browse the complete demo's source code here: `Squash the Creep source code <https://github.com/GDQuest/godot-3d-dodge-the-creeps/>`__."
msgstr ""
#: ../../docs/getting_started/first_3d_game/index.rst:38
msgid "You can follow this series without having done the 2D one. However, if you're new to game development, we recommend you to start with 2D. 3D game code is always more complex and the 2D series will give you foundations to follow along more comfortably."
msgstr ""
#: ../../docs/getting_started/first_3d_game/index.rst:43
msgid "We prepared some game assets so we can jump straight to the code. You can download them here: `Squash the Creeps assets <https://github.com/GDQuest/godot-3d-dodge-the-creeps/releases/tag/1.1.0>`__."
msgstr ""
#: ../../docs/getting_started/first_3d_game/index.rst:47
msgid "We will first work on a basic prototype for the player's movement. We will then add the monsters that we'll spawn randomly around the screen. After that, we'll implement the jump and squashing mechanic before refining the game with some nice animation. We'll wrap up with the score and the retry screen."
msgstr ""
#: ../../docs/getting_started/first_3d_game/index.rst:53
msgid "Contents"
msgstr ""

View File

@@ -0,0 +1,162 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-2021, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:10
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:40
msgid "First look at Godot's editor"
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:12
msgid "This page will give you a brief overview of Godot's interface. We're going to look at the different main screens and docks to help you situate yourself."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:15
msgid "For a comprehensive breakdown of the editor's interface and how to use it, see the :ref:`Editor manual <toc-learn-editor>`."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:19
msgid "The Project manager"
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:21
msgid "When you launch Godot, the first window you see is the Project Manager. In the default tab, \"Projects,\" you can manage existing projects, import or create new ones, and more."
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."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:33
msgid "You can also change the editor's language using the drop-down menu to the right of the engine's version in the window's top-right corner. By default, it is in English (EN)."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:42
msgid "When you open a new or an existing project, the editor's interface appears. Let's look at its main areas."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:47
msgid "By default, it features **menus**, **main screens**, and playtest buttons along the window's top edge."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:52
msgid "In the center is the **viewport** with its **toolbar** at the top, where you'll find tools to move, scale, or lock the scene's nodes."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:57
msgid "On either side of the viewport sit the **docks**. And at the bottom of the window lies the **bottom panel**."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:60
msgid "The toolbar changes based on the context and selected node. Here is the 2D toolbar."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:64
msgid "Below is the 3D one."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:68
msgid "Let's look at the docks. The **FileSystem** dock lists your project files, be it scripts, images, audio samples, and more."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:73
msgid "The **Scene** dock lists the active scene's nodes."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:77
msgid "The **Inspector** allows you to edit the properties of a selected node."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:81
msgid "The **bottom panel**, situated below the viewport, is the host for the debug console, the animation editor, the audio mixer, and more. They can take precious space, that's why they're folded by default."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:87
msgid "When you click on one, it expands vertically. Below, you can see the animation editor opened."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:92
msgid "The four main screens"
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:94
msgid "There are four main screen buttons centered at the top of the editor: 2D, 3D, Script, and AssetLib."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:97
msgid "You'll use the **2D screen** for all types of games. In addition to 2D games, the 2D screen is where you'll build your interfaces."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:102
msgid "In the **3D screen**, you can work with meshes, lights, and design levels for 3D games."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:107
msgid "Notice the perspective button under the toolbar. Clicking on it opens a list of options related to the 3D view."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:112
msgid "Read :ref:`doc_introduction_to_3d` for more detail about the **3D main screen**."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:115
msgid "The **Script screen** is a complete code editor with a debugger, rich auto-completion, and built-in code reference."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:120
msgid "Finally, the **AssetLib** is a library of free and open-source add-ons, scripts, and assets to use in your projects."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:125
msgid "You can learn more about the asset library in :ref:`doc_what_is_assetlib`."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:129
msgid "Integrated class reference"
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:131
msgid "Godot comes with a built-in class reference."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:133
msgid "You can search for information about a class, method, property, constant, or signal by any one of the following methods:"
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:136
msgid "Pressing :kbd:`F1` (or :kbd:`Alt + Space` on macOS) anywhere in the editor."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:137
msgid "Clicking the \"Search Help\" button in the top-right of the Script main screen."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:138
msgid "Clicking on the Help menu and Search Help."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:139
msgid "Clicking while pressing the :kbd:`Ctrl` key on a class name, function name, or built-in variable in the script editor."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:145
msgid "When you do any of these, a window pops up. Type to search for any item. You can also use it to browse available objects and methods."
msgstr ""
#: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:150
msgid "Double-click on an item to open the corresponding page in the script main screen."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine 3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-19 11:09+0100\n"
"POT-Creation-Date: 2021-12-16 15:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,174 +16,182 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:4
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:4
msgid "Godot's design philosophy"
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:6
msgid "Now that you've gotten your hands wet, let's talk about Godot's design."
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:6
msgid "Now that you've gotten your feet wet, let's talk about Godot's design."
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:8
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:8
msgid "**Every game engine is different and fits different needs.** Not only do they offer a range of features, but the design of each engine is unique. This leads to different workflows and different ways to form your games' structures. This all stems from their respective design philosophies."
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:13
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:13
msgid "This page is here to help you understand how Godot works, starting with some of its core pillars. It is not a list of available features, nor is it an engine comparison. To know if any engine can be a good fit for your project, you need to try it out for yourself and understand its design and limitations."
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:19
msgid "Please watch `Discover Godot 3, the Free game engine <https://youtu.be/4v3qge-3CqQ>`_ if you're looking for an overview of the engine's features."
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:19
msgid "Please watch `Godot explained in 5 minutes <https://www.youtube.com/watch?v=KjX5llYZ5eQ>`_ if you're looking for an overview of the engine's features."
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:23
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:24
msgid "Object-oriented design and composition"
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:25
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:26
msgid "Godot embraces object-oriented design at its core with its flexible scene system and Node hierarchy. It tries to stay away from strict programming patterns to offer an intuitive way to structure your game."
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:29
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:30
msgid "For one, Godot lets you **compose or aggregate** scenes. It's like nested prefabs: you can create a BlinkingLight scene and a BrokenLantern scene that uses the BlinkingLight. Then, create a city filled with BrokenLanterns. Change the BlinkingLight's color, save, and all the BrokenLanterns in the city will update instantly."
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:36
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:37
msgid "On top of that, you can **inherit** from any scene."
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:38
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:39
msgid "A Godot scene could be a Weapon, a Character, an Item, a Door, a Level, part of a level… anything you'd like. It works like a class in pure code, except you're free to design it by using the editor, using only the code, or mixing and matching the two."
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:43
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:44
msgid "It's different from prefabs you find in several 3D engines, as you can then inherit from and extend those scenes. You may create a Magician that extends your Character. Modify the Character in the editor and the Magician will update as well. It helps you build your projects so that their structure matches the game's design."
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:49
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:50
msgid "|image0|"
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:51
msgid "Also note that Godot offers many different types of objects called nodes, each with a specific purpose. Nodes are part of a tree and always inherit from their parents up to the Node class. Although the engine does feature components like collision shapes, they're the exception, not the norm."
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:52
msgid "Also note that Godot offers many different types of objects called nodes, each with a specific purpose. Nodes are part of a tree and always inherit from their parents up to the Node class. Although the engine does feature some nodes like collision shapes that a parent physics body will use, most nodes work independently from one another."
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:57
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:58
msgid "In other words, Godot's nodes do not work like components in some other game engines."
msgstr ""
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:61
msgid "|image1|"
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:59
msgid "Sprite is a Node2D, a CanvasItem and a Node. It has all the properties and features of its three parent classes, like transforms or the ability to draw custom shapes and render with a custom shader."
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:63
msgid "Sprite2D is a Node2D, a CanvasItem and a Node. It has all the properties and features of its three parent classes, like transforms or the ability to draw custom shapes and render with a custom shader."
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:64
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:68
msgid "All-inclusive package"
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:66
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:70
msgid "Godot tries to provide its own tools to answer most common needs. It has a dedicated scripting workspace, an animation editor, a tilemap editor, a shader editor, a debugger, a profiler, the ability to hot-reload locally and on remote devices, etc."
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:71
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:75
msgid "|image2|"
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:73
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:77
msgid "The goal is to offer a full package to create games and a continuous user experience. You can still work with external programs as long as there is an import plugin for it. Or you can create one, like the `Tiled Map Importer <https://github.com/vnen/godot-tiled-importer>`__."
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:78
msgid "That is also partly why Godot offers its own programming languages GDscript and VisualScript, along with C#. They're designed for the needs of game developers and game designers, and they're tightly integrated in the engine and the editor."
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:82
msgid "That is also partly why Godot offers its own programming languages GDScript and VisualScript, along with C#. They're designed for the needs of game developers and game designers, and they're tightly integrated in the engine and the editor."
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:83
msgid "GDscript lets you write simple code using Python-like syntax, yet it detects types and offers a static language's quality of auto-completion. It is also optimized for gameplay code with built-in types like Vectors and Colors."
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:87
msgid "GDScript lets you write code using an indentation-based syntax, yet it detects types and offers a static language's quality of auto-completion. It is also optimized for gameplay code with built-in types like Vectors and Colors."
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:87
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:91
msgid "Note that with GDNative, you can write high-performance code using compiled languages like C, C++, Rust, or Python (using the Cython compiler) without recompiling the engine."
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:91
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:95
msgid "|image3|"
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:93
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:97
msgid "*VisualScript is a node-based programming language that integrates well in the editor. You can drag and drop nodes or resources into the graph to create new code blocks.*"
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:97
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:101
msgid "Note that the 3D workspace doesn't feature as many tools as the 2D workspace. You'll need external programs or add-ons to edit terrains, animate complex characters, and so on. Godot provides a complete API to extend the editor's functionality using game code. See `The Godot editor is a Godot game`_ below."
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:102
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:106
msgid "|image4|"
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:104
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:108
msgid "*A State Machine editor plugin in Godot 2 by kubecz3k. It lets you manage states and transitions visually.*"
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:108
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:112
msgid "Open source"
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:110
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:114
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/step_by_step/godot_design_philosophy.rst:115
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:119
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/step_by_step/godot_design_philosophy.rst:120
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:124
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/step_by_step/godot_design_philosophy.rst:126
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:130
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/step_by_step/godot_design_philosophy.rst:130
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:134
msgid "Community-driven"
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:132
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:136
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/step_by_step/godot_design_philosophy.rst:137
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:141
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/step_by_step/godot_design_philosophy.rst:144
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:148
msgid "The Godot editor is a Godot game"
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:146
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:150
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/step_by_step/godot_design_philosophy.rst:151
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:155
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/step_by_step/godot_design_philosophy.rst:154
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:158
msgid "|image5|"
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:156
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:160
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/step_by_step/godot_design_philosophy.rst:160
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:164
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/step_by_step/godot_design_philosophy.rst:166
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:171
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
msgid "Separate 2D and 3D engines"
msgstr ""
#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:168
#: ../../docs/getting_started/introduction/godot_design_philosophy.rst:178
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 ""

Some files were not shown because too many files have changed in this diff Show More