diff --git a/docs b/docs index 31a288783c..695c9531c2 160000 --- a/docs +++ b/docs @@ -1 +1 @@ -Subproject commit 31a288783c982a31d1d896f16c90a0ee633375cd +Subproject commit 695c9531c24ad91d3a66840db847935a699be3b9 diff --git a/sphinx/templates/about/docs_changelog.pot b/sphinx/templates/about/docs_changelog.pot index f2a8e1f41f..6788e18141 100644 --- a/sphinx/templates/about/docs_changelog.pot +++ b/sphinx/templates/about/docs_changelog.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,424 +21,432 @@ msgid "Documentation changelog" msgstr "" #: ../../docs/about/docs_changelog.rst:6 -msgid "The documentation is continually being improved. The release of version 3.1 includes many new tutorials, many fixes and updates for old tutorials, and many updates to the class reference. Below is a list of new tutorials added since version 3.0." +msgid "The documentation is continually being improved. The release of version 3.2 includes many new tutorials, many fixes and updates for old tutorials, and many updates to the :ref:`class reference `. Below is a list of new tutorials added since version 3.1." msgstr "" -#: ../../docs/about/docs_changelog.rst:10 +#: ../../docs/about/docs_changelog.rst:11 msgid "This document only contains new tutorials so not all changes are reflected, many tutorials have been substantially updated but are not reflected in this document." msgstr "" -#: ../../docs/about/docs_changelog.rst:14 +#: ../../docs/about/docs_changelog.rst:15 msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:18 +#: ../../docs/about/docs_changelog.rst:118 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:19 +#: ../../docs/about/docs_changelog.rst:20 msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:132 +#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:134 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:24 +#: ../../docs/about/docs_changelog.rst:25 msgid ":ref:`doc_2d_sprite_animation`" msgstr "" -#: ../../docs/about/docs_changelog.rst:27 +#: ../../docs/about/docs_changelog.rst:28 msgid "Audio" msgstr "" -#: ../../docs/about/docs_changelog.rst:29 +#: ../../docs/about/docs_changelog.rst:30 +msgid ":ref:`doc_recording_with_microphone`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 msgid ":ref:`doc_sync_with_audio`" msgstr "" -#: ../../docs/about/docs_changelog.rst:32 +#: ../../docs/about/docs_changelog.rst:34 msgid "Math" msgstr "" -#: ../../docs/about/docs_changelog.rst:34 +#: ../../docs/about/docs_changelog.rst:36 msgid ":ref:`doc_beziers_and_curves`" msgstr "" -#: ../../docs/about/docs_changelog.rst:35 +#: ../../docs/about/docs_changelog.rst:37 msgid ":ref:`doc_interpolation`" msgstr "" -#: ../../docs/about/docs_changelog.rst:38 +#: ../../docs/about/docs_changelog.rst:40 msgid "Inputs" msgstr "" -#: ../../docs/about/docs_changelog.rst:40 +#: ../../docs/about/docs_changelog.rst:42 msgid ":ref:`doc_input_examples`" msgstr "" -#: ../../docs/about/docs_changelog.rst:43 +#: ../../docs/about/docs_changelog.rst:45 msgid "Internationalization" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 +#: ../../docs/about/docs_changelog.rst:47 msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:168 +#: ../../docs/about/docs_changelog.rst:50 +#: ../../docs/about/docs_changelog.rst:170 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:50 +#: ../../docs/about/docs_changelog.rst:55 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 +#: ../../docs/about/docs_changelog.rst:56 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 -msgid "Networking" +#: ../../docs/about/docs_changelog.rst:57 +msgid ":ref:`doc_visual_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:60 +msgid "Networking" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:62 msgid ":ref:`doc_webrtc`" msgstr "" -#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:65 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:67 msgid ":ref:`doc_vr_starter_tutorial_part_one`" msgstr "" -#: ../../docs/about/docs_changelog.rst:66 +#: ../../docs/about/docs_changelog.rst:68 msgid ":ref:`doc_vr_starter_tutorial_part_two`" msgstr "" -#: ../../docs/about/docs_changelog.rst:69 -#: ../../docs/about/docs_changelog.rst:183 +#: ../../docs/about/docs_changelog.rst:71 +#: ../../docs/about/docs_changelog.rst:185 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:71 +#: ../../docs/about/docs_changelog.rst:73 msgid ":ref:`doc_android_plugin`" msgstr "" -#: ../../docs/about/docs_changelog.rst:72 +#: ../../docs/about/docs_changelog.rst:74 msgid ":ref:`doc_inspector_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:73 +#: ../../docs/about/docs_changelog.rst:75 msgid ":ref:`doc_visual_shader_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:76 -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:196 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:80 msgid ":ref:`doc_using_multiple_threads`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:83 +#: ../../docs/about/docs_changelog.rst:201 msgid "Creating content" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 +#: ../../docs/about/docs_changelog.rst:90 msgid "Procedural geometry series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:86 msgid ":ref:`Procedural geometry `" msgstr "" -#: ../../docs/about/docs_changelog.rst:85 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_arraymesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:88 msgid ":ref:`doc_surfacetool`" msgstr "" -#: ../../docs/about/docs_changelog.rst:87 +#: ../../docs/about/docs_changelog.rst:89 msgid ":ref:`doc_meshdatatool`" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 +#: ../../docs/about/docs_changelog.rst:90 msgid ":ref:`doc_immediategeometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:91 +#: ../../docs/about/docs_changelog.rst:93 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:93 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:97 +#: ../../docs/about/docs_changelog.rst:99 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:99 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:102 +#: ../../docs/about/docs_changelog.rst:104 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:105 +#: ../../docs/about/docs_changelog.rst:107 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:118 +#: ../../docs/about/docs_changelog.rst:120 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:124 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:123 +#: ../../docs/about/docs_changelog.rst:125 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 +#: ../../docs/about/docs_changelog.rst:126 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 +#: ../../docs/about/docs_changelog.rst:127 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:129 +#: ../../docs/about/docs_changelog.rst:131 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:137 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 +#: ../../docs/about/docs_changelog.rst:140 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:143 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:142 +#: ../../docs/about/docs_changelog.rst:144 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:147 +#: ../../docs/about/docs_changelog.rst:149 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid "Animation" msgstr "" -#: ../../docs/about/docs_changelog.rst:153 +#: ../../docs/about/docs_changelog.rst:155 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:159 +#: ../../docs/about/docs_changelog.rst:161 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:164 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:172 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:171 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:172 +#: ../../docs/about/docs_changelog.rst:174 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:174 +#: ../../docs/about/docs_changelog.rst:176 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:178 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:177 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:178 +#: ../../docs/about/docs_changelog.rst:180 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:181 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:180 +#: ../../docs/about/docs_changelog.rst:182 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:185 +#: ../../docs/about/docs_changelog.rst:187 msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:188 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:191 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:193 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:198 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:201 +#: ../../docs/about/docs_changelog.rst:203 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:206 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:206 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:207 +#: ../../docs/about/docs_changelog.rst:209 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:210 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:209 +#: ../../docs/about/docs_changelog.rst:211 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:212 +#: ../../docs/about/docs_changelog.rst:214 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:214 +#: ../../docs/about/docs_changelog.rst:216 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:215 +#: ../../docs/about/docs_changelog.rst:217 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:218 +#: ../../docs/about/docs_changelog.rst:220 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:220 +#: ../../docs/about/docs_changelog.rst:222 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" diff --git a/sphinx/templates/about/faq.pot b/sphinx/templates/about/faq.pot index 91a3d4d795..5c8e9c60ec 100644 --- a/sphinx/templates/about/faq.pot +++ b/sphinx/templates/about/faq.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/about/index.pot b/sphinx/templates/about/index.pot index 6f5741768f..a39e5d32ff 100644 --- a/sphinx/templates/about/index.pot +++ b/sphinx/templates/about/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/about/introduction.pot b/sphinx/templates/about/introduction.pot index 5d8cd80c89..433b92d22e 100644 --- a/sphinx/templates/about/introduction.pot +++ b/sphinx/templates/about/introduction.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/channels.pot b/sphinx/templates/community/channels.pot index 5a0c96733e..f082a6bb8e 100644 --- a/sphinx/templates/community/channels.pot +++ b/sphinx/templates/community/channels.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/best_practices_for_engine_contributors.pot b/sphinx/templates/community/contributing/best_practices_for_engine_contributors.pot index f46353d31c..83d506a0db 100644 --- a/sphinx/templates/community/contributing/best_practices_for_engine_contributors.pot +++ b/sphinx/templates/community/contributing/best_practices_for_engine_contributors.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -53,7 +53,7 @@ msgid "#1: The problem always comes first" msgstr "" #: ../../docs/community/contributing/best_practices_for_engine_contributors.rst:26 -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 not be actually solving any actual problems." msgstr "" #: ../../docs/community/contributing/best_practices_for_engine_contributors.rst:30 diff --git a/sphinx/templates/community/contributing/bisecting_regressions.pot b/sphinx/templates/community/contributing/bisecting_regressions.pot index 35232cb0a1..d449e236a2 100644 --- a/sphinx/templates/community/contributing/bisecting_regressions.pot +++ b/sphinx/templates/community/contributing/bisecting_regressions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/bug_triage_guidelines.pot b/sphinx/templates/community/contributing/bug_triage_guidelines.pot index 06c97ab2a8..0c16fa62a5 100644 --- a/sphinx/templates/community/contributing/bug_triage_guidelines.pot +++ b/sphinx/templates/community/contributing/bug_triage_guidelines.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/code_style_guidelines.pot b/sphinx/templates/community/contributing/code_style_guidelines.pot index fcd653ef04..6de9b0d544 100644 --- a/sphinx/templates/community/contributing/code_style_guidelines.pot +++ b/sphinx/templates/community/contributing/code_style_guidelines.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/docs_writing_guidelines.pot b/sphinx/templates/community/contributing/docs_writing_guidelines.pot index a440104899..62805a3fd1 100644 --- a/sphinx/templates/community/contributing/docs_writing_guidelines.pot +++ b/sphinx/templates/community/contributing/docs_writing_guidelines.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/documentation_guidelines.pot b/sphinx/templates/community/contributing/documentation_guidelines.pot index 2773d7c778..3c29813f31 100644 --- a/sphinx/templates/community/contributing/documentation_guidelines.pot +++ b/sphinx/templates/community/contributing/documentation_guidelines.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/index.pot b/sphinx/templates/community/contributing/index.pot index 22aa6f8869..58b8657a48 100644 --- a/sphinx/templates/community/contributing/index.pot +++ b/sphinx/templates/community/contributing/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/contributing/pr_workflow.pot b/sphinx/templates/community/contributing/pr_workflow.pot index 5b0ca6c255..2be09ac54c 100644 --- a/sphinx/templates/community/contributing/pr_workflow.pot +++ b/sphinx/templates/community/contributing/pr_workflow.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -61,302 +61,334 @@ msgid "The ``master`` branch is where the development of the next major version msgstr "" #: ../../docs/community/contributing/pr_workflow.rst:57 -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, you will have to check if your changes are also relevant for the ``master`` branch." +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:65 -msgid "There might be feature branches at time, usually meant to be merged into the ``master`` branch at some time." -msgstr "" - -#: ../../docs/community/contributing/pr_workflow.rst:69 -msgid "Forking and cloning" +#: ../../docs/community/contributing/pr_workflow.rst:67 +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 +msgid "Forking and cloning" +msgstr "" + +#: ../../docs/community/contributing/pr_workflow.rst:73 msgid "The first step is to *fork* the `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:78 +#: ../../docs/community/contributing/pr_workflow.rst:80 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:83 +#: ../../docs/community/contributing/pr_workflow.rst:85 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 `_ 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:88 +#: ../../docs/community/contributing/pr_workflow.rst:90 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:91 +#: ../../docs/community/contributing/pr_workflow.rst:93 msgid "To clone your fork from GitHub, use the following command:" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:97 +#: ../../docs/community/contributing/pr_workflow.rst:99 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:101 +#: ../../docs/community/contributing/pr_workflow.rst:103 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:108 +#: ../../docs/community/contributing/pr_workflow.rst:110 msgid "We will start by setting up a reference to the original repository that we forked:" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:115 -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." +#: ../../docs/community/contributing/pr_workflow.rst:117 +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:120 +#: ../../docs/community/contributing/pr_workflow.rst:122 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:124 +#: ../../docs/community/contributing/pr_workflow.rst:126 msgid "*Branch it, pull it, code it, stage it, commit, push it, rebase it... technologic.*" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:127 +#: ../../docs/community/contributing/pr_workflow.rst:129 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:135 -msgid "In the following, we will assume 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:140 -msgid "Branching" +#: ../../docs/community/contributing/pr_workflow.rst:137 +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 +msgid "Branching" +msgstr "" + +#: ../../docs/community/contributing/pr_workflow.rst:144 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:154 +#: ../../docs/community/contributing/pr_workflow.rst:156 msgid "This command is equivalent:" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:161 +#: ../../docs/community/contributing/pr_workflow.rst:163 msgid "If you want to go back to the ``master`` branch, you'd use:" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:167 +#: ../../docs/community/contributing/pr_workflow.rst:169 msgid "You can see which branch you are currently on with the ``git branch`` command:" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:178 +#: ../../docs/community/contributing/pr_workflow.rst:179 +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 msgid "Updating your branch" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:180 +#: ../../docs/community/contributing/pr_workflow.rst:190 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:186 +#: ../../docs/community/contributing/pr_workflow.rst:196 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:194 -msgid "However, if you had local commits, this method will create a so-called \"merge commit\", and you will soon hear from fellow contributors that those are not wanted in PRs. To update the branch without creating a merge commit, you will have to use the ``--rebase`` option, so that your local commits are replayed on top of the updated upstream ``master`` branch. It will effectively modify the Git history of your branch, but that is for the greater good." +#: ../../docs/community/contributing/pr_workflow.rst:204 +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:201 -msgid "Therefore, the command that you should (almost) always use is:" -msgstr "" - -#: ../../docs/community/contributing/pr_workflow.rst:208 -msgid "If you have already pushed the merge commit without using ``rebase``, or have made any other changes that have resulted in undesired history, you may use a hard reset to revert to a specific commit and try again:" +#: ../../docs/community/contributing/pr_workflow.rst:209 +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 -msgid "Once you have done this, you may run ``--rebase`` to merge master correctly." -msgstr "" - -#: ../../docs/community/contributing/pr_workflow.rst:218 -msgid "If you have already pushed the wrong commits to your remote branch, you will have to force push by using ``git push --force``." +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 -msgid "``git reset --hard`` can be a dangerous operation, especially if you have untracked or uncommitted changes. However, if you have committed changes that you reset using ``git reset --hard``, you may still be able to recover them by resetting to a commit ID found with the ``git reflog`` command." +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:228 -msgid "Making changes" +#: ../../docs/community/contributing/pr_workflow.rst:225 +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:230 -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.)." +#: ../../docs/community/contributing/pr_workflow.rst:229 +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:234 -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." +#: ../../docs/community/contributing/pr_workflow.rst:236 +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 ` for instructions." msgstr "" #: ../../docs/community/contributing/pr_workflow.rst:241 -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." +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 `` or ``git reset --hard /`` (e.g. ``git reset --hard upstream/master``)." msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:244 -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:246 -msgid "``git checkout -- `` will undo the unstaged changes to the given files." -msgstr "" - -#: ../../docs/community/contributing/pr_workflow.rst:248 -msgid "``git add `` will *stage* the changes on the listed files." -msgstr "" - -#: ../../docs/community/contributing/pr_workflow.rst:249 -msgid "``git diff --staged`` will show the current staged changes, i.e. the differences between the staging area and the last commit." +#: ../../docs/community/contributing/pr_workflow.rst:245 +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 -msgid "``git reset HEAD `` will *unstage* changes to the listed files." +msgid "Making changes" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:252 -msgid "``git status`` will show you what are the currently staged and unstaged modifications." +#: ../../docs/community/contributing/pr_workflow.rst:253 +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:254 -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:259 -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:261 -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." +#: ../../docs/community/contributing/pr_workflow.rst:257 +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 -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." +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 +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 +msgid "``git checkout -- `` will undo the unstaged changes to the given files." +msgstr "" + +#: ../../docs/community/contributing/pr_workflow.rst:271 +msgid "``git add `` will *stage* the changes on the listed files." +msgstr "" + +#: ../../docs/community/contributing/pr_workflow.rst:272 +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 +msgid "``git reset HEAD `` will *unstage* changes to the listed files." +msgstr "" + +#: ../../docs/community/contributing/pr_workflow.rst:275 +msgid "``git status`` will show you what are the currently staged and unstaged modifications." +msgstr "" + +#: ../../docs/community/contributing/pr_workflow.rst:277 +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 +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 +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 +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 +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 msgid "Here's how the shell history could look like on our example:" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:299 +#: ../../docs/community/contributing/pr_workflow.rst:325 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:304 +#: ../../docs/community/contributing/pr_workflow.rst:330 msgid "Pushing changes to a remote" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:306 +#: ../../docs/community/contributing/pr_workflow.rst:332 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:315 +#: ../../docs/community/contributing/pr_workflow.rst:341 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:323 +#: ../../docs/community/contributing/pr_workflow.rst:349 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:328 +#: ../../docs/community/contributing/pr_workflow.rst:354 msgid "Issuing a pull request" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:330 -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." +#: ../../docs/community/contributing/pr_workflow.rst:356 +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:337 -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: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 :)" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:343 +#: ../../docs/community/contributing/pr_workflow.rst:369 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:349 +#: ../../docs/community/contributing/pr_workflow.rst:375 msgid "Modifying a pull request" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:351 +#: ../../docs/community/contributing/pr_workflow.rst:377 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:355 +#: ../../docs/community/contributing/pr_workflow.rst:381 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:370 -msgid "That should do the trick, but..." +#: ../../docs/community/contributing/pr_workflow.rst:396 +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:373 -msgid "Mastering the PR workflow: the rebase" +#: ../../docs/community/contributing/pr_workflow.rst:426 +msgid "The interactive rebase" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:375 -msgid "On the situation outlined above, your fellow contributors who are particularly pedantic regarding the Git history might ask your to *rebase* your branch to *squash* or *meld* the last two commits together (i.e. the two related to the project manager), as the second commit basically fixes an issue in the first one." +#: ../../docs/community/contributing/pr_workflow.rst:428 +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:380 -msgid "Once the PR is merged, it is not relevant for a changelog reader that the PR author made mistakes; instead, we want to keep only commits that bring from one working state to another working state." +#: ../../docs/community/contributing/pr_workflow.rst:433 +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:384 -msgid "To squash those two commits together, 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 :)" +#: ../../docs/community/contributing/pr_workflow.rst:438 +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:389 -msgid "We will use the *interactive rebase* ``git rebase -i`` to do this. This command takes a commit hash as argument, and will let you modify all commits between that commit hash and the last one of the branch, the so-called *HEAD*. In our example, we want to act on the last two commits, so we will do:" +#: ../../docs/community/contributing/pr_workflow.rst:443 +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:400 -msgid "This will open a text editor with:" +#: ../../docs/community/contributing/pr_workflow.rst:448 +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:407 -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:" +#: ../../docs/community/contributing/pr_workflow.rst:456 +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:420 -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:425 -msgid "You could have avoided this rebase by using ``git commit --amend`` when fixing the typo. This command will write the staged changes directly into the *last* commit (``HEAD``), instead of creating a new commit like we did in this example. So it is equivalent to what we did with a new commit and then a rebase to mark it as \"fixup\"." -msgstr "" - -#: ../../docs/community/contributing/pr_workflow.rst:431 -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:445 -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:453 -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:458 -msgid "Deleting a Git branch" -msgstr "" - -#: ../../docs/community/contributing/pr_workflow.rst:460 -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:465 -msgid "To delete our better project manager branch locally, use this command:" +#: ../../docs/community/contributing/pr_workflow.rst:461 +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 __` to configure your favorite one) with something which may look like this:" +msgstr "" + +#: ../../docs/community/contributing/pr_workflow.rst:480 +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 +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 +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 +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 +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 +msgid "Deleting a Git branch" +msgstr "" + +#: ../../docs/community/contributing/pr_workflow.rst:527 +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 +msgid "To delete our better project manager branch locally, use this command:" +msgstr "" + +#: ../../docs/community/contributing/pr_workflow.rst:538 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:474 +#: ../../docs/community/contributing/pr_workflow.rst:541 msgid "Next, to delete the remote branch on GitHub use this command:" msgstr "" +#: ../../docs/community/contributing/pr_workflow.rst:547 +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 "" + diff --git a/sphinx/templates/community/contributing/updating_the_class_reference.pot b/sphinx/templates/community/contributing/updating_the_class_reference.pot index 31fb4d9037..a3206e220f 100644 --- a/sphinx/templates/community/contributing/updating_the_class_reference.pot +++ b/sphinx/templates/community/contributing/updating_the_class_reference.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,470 +21,490 @@ msgid "Contribute 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 `_." +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 `. 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:11 +#: ../../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." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:14 +#: ../../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." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:17 -msgid "This guide is available as a `video tutorial on YouTube `_." -msgstr "" - #: ../../docs/community/contributing/updating_the_class_reference.rst:21 -msgid "How to contribute" -msgstr "" - -#: ../../docs/community/contributing/updating_the_class_reference.rst:23 -msgid "The class reference lies in the following XML files, in Godot's GitHub repository: `doc/classes/ `_." +msgid "Not sure where to start contributing? Take a look at the current class reference completion status `here `__." msgstr "" #: ../../docs/community/contributing/updating_the_class_reference.rst:25 -msgid "There are 5 steps to update the class reference (full guide below):" +msgid "How to contribute" msgstr "" #: ../../docs/community/contributing/updating_the_class_reference.rst:27 -msgid "Fork `Godot's repository `_" -msgstr "" - -#: ../../docs/community/contributing/updating_the_class_reference.rst:28 -msgid "Clone your fork on your computer" +msgid "The class reference lies in the following XML files, in Godot's GitHub repository: `doc/classes/ `_." msgstr "" #: ../../docs/community/contributing/updating_the_class_reference.rst:29 -msgid "Edit the class file in ``doc/classes/`` to write documentation" -msgstr "" - -#: ../../docs/community/contributing/updating_the_class_reference.rst:30 -msgid "Commit your changes and push them to your fork" +msgid "There are 5 steps to update the class reference (full guide below):" msgstr "" #: ../../docs/community/contributing/updating_the_class_reference.rst:31 -msgid "Make a pull request on the Godot repository" +msgid "Fork `Godot's repository `_" +msgstr "" + +#: ../../docs/community/contributing/updating_the_class_reference.rst:32 +msgid "Clone your fork on your computer" msgstr "" #: ../../docs/community/contributing/updating_the_class_reference.rst:33 +msgid "Edit the class file in ``doc/classes/`` to write documentation" +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 `, hosted in the `godot-docs `_ repository." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:36 +#: ../../docs/community/contributing/updating_the_class_reference.rst:40 msgid "Get started with GitHub" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:38 +#: ../../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:40 +#: ../../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:41 +#: ../../docs/community/contributing/updating_the_class_reference.rst:45 msgid "Keep your fork up to date with other contributors" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:42 +#: ../../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:44 -msgid "If you're new to git, the version-control system Godot uses, go through `GitHub's interactive guide `_. You'll learn some essential vocabulary and get a sense for the tool." -msgstr "" - -#: ../../docs/community/contributing/updating_the_class_reference.rst:47 -msgid "Fork Godot" -msgstr "" - -#: ../../docs/community/contributing/updating_the_class_reference.rst:49 -msgid "Fork the Godot Engine into a GitHub repository of your own." +#: ../../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 `_. 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" +msgstr "" + +#: ../../docs/community/contributing/updating_the_class_reference.rst:53 +msgid "Fork the Godot Engine into a GitHub repository of your own." +msgstr "" + +#: ../../docs/community/contributing/updating_the_class_reference.rst:55 msgid "Clone the repository on your computer:" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:57 +#: ../../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." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:63 +#: ../../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:66 +#: ../../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:68 +#: ../../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:70 +#: ../../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:76 +#: ../../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:82 +#: ../../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:92 +#: ../../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:98 +#: ../../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:100 +#: ../../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:107 +#: ../../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:109 +#: ../../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:118 +#: ../../docs/community/contributing/updating_the_class_reference.rst:122 msgid "If you're feeling lost by now, come to our `IRC channels `_ and ask for help. Experienced git users will give you a hand." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:121 +#: ../../docs/community/contributing/updating_the_class_reference.rst:125 msgid "Updating the documentation template" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:123 +#: ../../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):" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:129 -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: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:" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:136 +#: ../../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:138 +#: ../../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:141 +#: ../../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:143 +#: ../../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:152 +#: ../../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:156 -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." +#: ../../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:158 +#: ../../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:161 +#: ../../docs/community/contributing/updating_the_class_reference.rst:165 msgid "How to edit class XML" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:163 +#: ../../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:165 +#: ../../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:167 +#: ../../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 `, run the editor and open the help for the page you modified." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:170 +#: ../../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:172 +#: ../../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 ." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:174 +#: ../../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:176 +#: ../../docs/community/contributing/updating_the_class_reference.rst:180 msgid "" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:177 +#: ../../docs/community/contributing/updating_the_class_reference.rst:181 msgid "" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:178 +#: ../../docs/community/contributing/updating_the_class_reference.rst:182 msgid "" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:179 +#: ../../docs/community/contributing/updating_the_class_reference.rst:183 msgid "" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:180 +#: ../../docs/community/contributing/updating_the_class_reference.rst:184 msgid "" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:181 +#: ../../docs/community/contributing/updating_the_class_reference.rst:185 msgid "" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:183 +#: ../../docs/community/contributing/updating_the_class_reference.rst:187 msgid "Write in a clear and simple language. Always follow the :ref:`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:185 +#: ../../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:224 +#: ../../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:228 +#: ../../docs/community/contributing/updating_the_class_reference.rst:232 msgid "Improve formatting with BBcode style tags" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:230 +#: ../../docs/community/contributing/updating_the_class_reference.rst:234 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:233 +#: ../../docs/community/contributing/updating_the_class_reference.rst:237 msgid "Tag" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:233 +#: ../../docs/community/contributing/updating_the_class_reference.rst:237 msgid "Effect" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:233 +#: ../../docs/community/contributing/updating_the_class_reference.rst:237 msgid "Usage" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:233 +#: ../../docs/community/contributing/updating_the_class_reference.rst:237 msgid "Result" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:235 +#: ../../docs/community/contributing/updating_the_class_reference.rst:239 msgid "[Class]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:235 +#: ../../docs/community/contributing/updating_the_class_reference.rst:239 msgid "Link a class" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:235 +#: ../../docs/community/contributing/updating_the_class_reference.rst:239 msgid "Move the [Sprite]." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:235 +#: ../../docs/community/contributing/updating_the_class_reference.rst:239 msgid "Move the :ref:`class_sprite`." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:237 +#: ../../docs/community/contributing/updating_the_class_reference.rst:241 msgid "[method methodname]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:237 +#: ../../docs/community/contributing/updating_the_class_reference.rst:241 msgid "Link to a method in this class" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:237 +#: ../../docs/community/contributing/updating_the_class_reference.rst:241 msgid "Call [method hide]." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:237 -#: ../../docs/community/contributing/updating_the_class_reference.rst:239 +#: ../../docs/community/contributing/updating_the_class_reference.rst:241 +#: ../../docs/community/contributing/updating_the_class_reference.rst:243 msgid "See :ref:`hide `." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:239 +#: ../../docs/community/contributing/updating_the_class_reference.rst:243 msgid "[method Class.methodname]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:239 +#: ../../docs/community/contributing/updating_the_class_reference.rst:243 msgid "Link to another class's method" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:239 +#: ../../docs/community/contributing/updating_the_class_reference.rst:243 msgid "Call [method Spatial.hide]." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:241 +#: ../../docs/community/contributing/updating_the_class_reference.rst:245 msgid "[member membername]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:241 +#: ../../docs/community/contributing/updating_the_class_reference.rst:245 msgid "Link to a member in this class" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:241 +#: ../../docs/community/contributing/updating_the_class_reference.rst:245 msgid "Get [member scale]." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:241 -#: ../../docs/community/contributing/updating_the_class_reference.rst:243 +#: ../../docs/community/contributing/updating_the_class_reference.rst:245 +#: ../../docs/community/contributing/updating_the_class_reference.rst:247 msgid "Get :ref:`scale `." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:243 +#: ../../docs/community/contributing/updating_the_class_reference.rst:247 msgid "[member Class.membername]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:243 +#: ../../docs/community/contributing/updating_the_class_reference.rst:247 msgid "Link to another class's member" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:243 +#: ../../docs/community/contributing/updating_the_class_reference.rst:247 msgid "Get [member Node2D.scale]." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:245 +#: ../../docs/community/contributing/updating_the_class_reference.rst:249 msgid "[signal signalname]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:245 +#: ../../docs/community/contributing/updating_the_class_reference.rst:249 msgid "Link to a signal in this class" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:245 +#: ../../docs/community/contributing/updating_the_class_reference.rst:249 msgid "Emit [signal renamed]." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:245 -#: ../../docs/community/contributing/updating_the_class_reference.rst:247 +#: ../../docs/community/contributing/updating_the_class_reference.rst:249 +#: ../../docs/community/contributing/updating_the_class_reference.rst:251 msgid "Emit :ref:`renamed `." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:247 +#: ../../docs/community/contributing/updating_the_class_reference.rst:251 msgid "[signal Class.signalname]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:247 +#: ../../docs/community/contributing/updating_the_class_reference.rst:251 msgid "Link to another class's signal" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:247 +#: ../../docs/community/contributing/updating_the_class_reference.rst:251 msgid "Emit [signal Node.renamed]." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:249 +#: ../../docs/community/contributing/updating_the_class_reference.rst:253 msgid "[b] [/b]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:249 +#: ../../docs/community/contributing/updating_the_class_reference.rst:253 msgid "Bold" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:249 +#: ../../docs/community/contributing/updating_the_class_reference.rst:253 msgid "Some [b]bold[/b] text." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:249 +#: ../../docs/community/contributing/updating_the_class_reference.rst:253 msgid "Some **bold** text." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:251 +#: ../../docs/community/contributing/updating_the_class_reference.rst:255 msgid "[i] [/i]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:251 +#: ../../docs/community/contributing/updating_the_class_reference.rst:255 msgid "Italic" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:251 +#: ../../docs/community/contributing/updating_the_class_reference.rst:255 msgid "Some [i]italic[/i] text." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:251 +#: ../../docs/community/contributing/updating_the_class_reference.rst:255 msgid "Some *italic* text." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:253 +#: ../../docs/community/contributing/updating_the_class_reference.rst:257 msgid "[code] [/code]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:253 +#: ../../docs/community/contributing/updating_the_class_reference.rst:257 msgid "Monospace" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:253 +#: ../../docs/community/contributing/updating_the_class_reference.rst:257 msgid "Some [code]monospace[/code] text." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:253 +#: ../../docs/community/contributing/updating_the_class_reference.rst:257 msgid "Some ``monospace`` text." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:255 +#: ../../docs/community/contributing/updating_the_class_reference.rst:259 +msgid "[kbd] [/kbd]" +msgstr "" + +#: ../../docs/community/contributing/updating_the_class_reference.rst:259 +msgid "Keyboard/mouse shortcut" +msgstr "" + +#: ../../docs/community/contributing/updating_the_class_reference.rst:259 +msgid "Some [kbd]Ctrl + C[/kbd] key." +msgstr "" + +#: ../../docs/community/contributing/updating_the_class_reference.rst:259 +msgid "Some :kbd:`Ctrl + C` key." +msgstr "" + +#: ../../docs/community/contributing/updating_the_class_reference.rst:261 msgid "[codeblock] [/codeblock]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:255 +#: ../../docs/community/contributing/updating_the_class_reference.rst:261 msgid "Multiline preformatted block" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:255 -#: ../../docs/community/contributing/updating_the_class_reference.rst:255 +#: ../../docs/community/contributing/updating_the_class_reference.rst:261 +#: ../../docs/community/contributing/updating_the_class_reference.rst:261 msgid "*See below.*" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:258 +#: ../../docs/community/contributing/updating_the_class_reference.rst:264 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:268 +#: ../../docs/community/contributing/updating_the_class_reference.rst:274 msgid "Will display as:" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:278 +#: ../../docs/community/contributing/updating_the_class_reference.rst:284 msgid "I don't know what this method does!" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:280 +#: ../../docs/community/contributing/updating_the_class_reference.rst:286 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:282 +#: ../../docs/community/contributing/updating_the_class_reference.rst:288 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 `__ and on IRC (freenode, #godotengine)." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:286 +#: ../../docs/community/contributing/updating_the_class_reference.rst:292 msgid "Localization" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:288 +#: ../../docs/community/contributing/updating_the_class_reference.rst:294 msgid "The documentation can be translated in any language on `Hosted Weblate `__." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:291 +#: ../../docs/community/contributing/updating_the_class_reference.rst:297 msgid "Translated strings are synced manually by documentation maintainers in the `godot-docs-l10n `__ repository." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:295 +#: ../../docs/community/contributing/updating_the_class_reference.rst:301 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." msgstr "" diff --git a/sphinx/templates/community/contributing/ways_to_contribute.pot b/sphinx/templates/community/contributing/ways_to_contribute.pot index 3b3a716f4a..bc1bc46a54 100644 --- a/sphinx/templates/community/contributing/ways_to_contribute.pot +++ b/sphinx/templates/community/contributing/ways_to_contribute.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/community/tutorials.pot b/sphinx/templates/community/tutorials.pot index 54fc748564..d1fa91d0a1 100644 --- a/sphinx/templates/community/tutorials.pot +++ b/sphinx/templates/community/tutorials.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -112,39 +112,43 @@ msgstr "" msgid "`BornCG `_ (3D, GDScript)." msgstr "" -#: ../../docs/community/tutorials.rst:40 +#: ../../docs/community/tutorials.rst:38 +msgid "`Gonkee `_ (2D, 3D, GDScript, Shaders)." +msgstr "" + +#: ../../docs/community/tutorials.rst:41 msgid "Text tutorials" msgstr "" -#: ../../docs/community/tutorials.rst:42 +#: ../../docs/community/tutorials.rst:43 msgid "`Godot Recipes by KidsCanCode `__" msgstr "" -#: ../../docs/community/tutorials.rst:43 +#: ../../docs/community/tutorials.rst:44 msgid "`Steincodes `__" msgstr "" -#: ../../docs/community/tutorials.rst:46 +#: ../../docs/community/tutorials.rst:47 msgid "Devlogs" msgstr "" -#: ../../docs/community/tutorials.rst:48 +#: ../../docs/community/tutorials.rst:49 msgid "`Andrea Catania (Physics & AI) `_" msgstr "" -#: ../../docs/community/tutorials.rst:49 +#: ../../docs/community/tutorials.rst:50 msgid "`Bastiaan Olij (AR & VR) `_" msgstr "" -#: ../../docs/community/tutorials.rst:52 +#: ../../docs/community/tutorials.rst:53 msgid "Resources" msgstr "" -#: ../../docs/community/tutorials.rst:54 +#: ../../docs/community/tutorials.rst:55 msgid "`awesome-godot: A curated list of resources by Calinou `_" msgstr "" -#: ../../docs/community/tutorials.rst:55 +#: ../../docs/community/tutorials.rst:56 msgid "`Zeef Godot Engine: A curated directory of resources by Andre Schmitz `_" msgstr "" diff --git a/sphinx/templates/development/compiling/compiling_for_android.pot b/sphinx/templates/development/compiling/compiling_for_android.pot index af5827a307..03ade6f02e 100644 --- a/sphinx/templates/development/compiling/compiling_for_android.pot +++ b/sphinx/templates/development/compiling/compiling_for_android.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/compiling/compiling_for_ios.pot b/sphinx/templates/development/compiling/compiling_for_ios.pot index 5e7758bcea..a94b0219d8 100644 --- a/sphinx/templates/development/compiling/compiling_for_ios.pot +++ b/sphinx/templates/development/compiling/compiling_for_ios.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/compiling/compiling_for_osx.pot b/sphinx/templates/development/compiling/compiling_for_osx.pot index 69abe7f556..0d835c4151 100644 --- a/sphinx/templates/development/compiling/compiling_for_osx.pot +++ b/sphinx/templates/development/compiling/compiling_for_osx.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -77,34 +77,46 @@ msgid "To create an ``.app`` bundle like in the official builds, you need to use msgstr "" #: ../../docs/development/compiling/compiling_for_osx.rst:57 -msgid "Cross-compiling for macOS from Linux" +msgid "Compiling a headless/server build" msgstr "" #: ../../docs/development/compiling/compiling_for_osx.rst:59 -msgid "It is possible to compile for macOS in a Linux environment (and maybe also in Windows using the Windows Subsystem for Linux). For that, you'll need to install `OSXCross `__ to be able to use macOS as a target. First, follow the instructions to install it:" +msgid "To compile a *headless* build which provides editor functionality to export projects in an automated manner, use::" msgstr "" #: ../../docs/development/compiling/compiling_for_osx.rst:64 -msgid "Clone the `OSXCross repository `__ somewhere on your machine (or download a ZIP file and extract it somewhere), e.g.::" +msgid "To compile a *server* build which is optimized to run dedicated game servers, use::" msgstr "" #: ../../docs/development/compiling/compiling_for_osx.rst:70 -msgid "Follow the instructions to package the SDK: https://github.com/tpoechtrager/osxcross#packaging-the-sdk" +msgid "Cross-compiling for macOS from Linux" msgstr "" #: ../../docs/development/compiling/compiling_for_osx.rst:72 -msgid "Follow the instructions to install OSXCross: https://github.com/tpoechtrager/osxcross#installation" +msgid "It is possible to compile for macOS in a Linux environment (and maybe also in Windows using the Windows Subsystem for Linux). For that, you'll need to install `OSXCross `__ to be able to use macOS as a target. First, follow the instructions to install it:" msgstr "" -#: ../../docs/development/compiling/compiling_for_osx.rst:75 -msgid "After that, you will need to define the ``OSXCROSS_ROOT`` as the path to the OSXCross installation (the same place where you cloned the repository/extracted the zip), e.g.::" +#: ../../docs/development/compiling/compiling_for_osx.rst:77 +msgid "Clone the `OSXCross repository `__ somewhere on your machine (or download a ZIP file and extract it somewhere), e.g.::" msgstr "" -#: ../../docs/development/compiling/compiling_for_osx.rst:81 -msgid "Now you can compile with SCons like you normally would::" +#: ../../docs/development/compiling/compiling_for_osx.rst:83 +msgid "Follow the instructions to package the SDK: https://github.com/tpoechtrager/osxcross#packaging-the-sdk" msgstr "" #: ../../docs/development/compiling/compiling_for_osx.rst:85 +msgid "Follow the instructions to install OSXCross: https://github.com/tpoechtrager/osxcross#installation" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_osx.rst:88 +msgid "After that, you will need to define the ``OSXCROSS_ROOT`` as the path to the OSXCross installation (the same place where you cloned the repository/extracted the zip), e.g.::" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_osx.rst:94 +msgid "Now you can compile with SCons like you normally would::" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_osx.rst:98 msgid "If you have an OSXCross SDK version different from the one expected by the SCons buildsystem, you can specify a custom one with the ``osxcross_sdk`` argument::" msgstr "" diff --git a/sphinx/templates/development/compiling/compiling_for_uwp.pot b/sphinx/templates/development/compiling/compiling_for_uwp.pot index 3beda969e7..988903b25e 100644 --- a/sphinx/templates/development/compiling/compiling_for_uwp.pot +++ b/sphinx/templates/development/compiling/compiling_for_uwp.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/compiling/compiling_for_web.pot b/sphinx/templates/development/compiling/compiling_for_web.pot index 679c80a11b..771dc5ec8f 100644 --- a/sphinx/templates/development/compiling/compiling_for_web.pot +++ b/sphinx/templates/development/compiling/compiling_for_web.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/compiling/compiling_for_windows.pot b/sphinx/templates/development/compiling/compiling_for_windows.pot index 7ab5645103..daaca8ec3b 100644 --- a/sphinx/templates/development/compiling/compiling_for_windows.pot +++ b/sphinx/templates/development/compiling/compiling_for_windows.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -41,7 +41,7 @@ msgid "`Python 3.5+ `_." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:20 -msgid "`SCons 3.0 `_ build system. If using Visual Studio 2019, you need at least SCons 3.1.1." +msgid "`SCons 3.0 `_ build system. If using Visual Studio 2019, you need at least SCons 3.1.1." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:22 @@ -65,206 +65,218 @@ msgid "For a general overview of SCons usage for Godot, see :ref:`doc_introducti msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:44 -msgid "Setting up SCons" +msgid "Setting up Python" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:46 -msgid "First, make sure to enable the option to add Python to the ``PATH`` in the Python installer. The SCons installer should then detect and use the existing Python installation." +msgid "First you need to install Python 3.5 or newer. Make sure to enable the option to add Python to the ``PATH`` in the Python installer. The SCons installer should then detect and use the existing Python installation." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:50 +#: ../../docs/development/compiling/compiling_for_windows.rst:51 +msgid "Setting up SCons" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_windows.rst:53 +msgid "To install SCons open the command prompt and run the following command." +msgstr "" + +#: ../../docs/development/compiling/compiling_for_windows.rst:55 +msgid "``python -m pip install scons``" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_windows.rst:57 msgid "To check whether you have installed Python and SCons correctly, you can type ``python --version`` and ``scons --version`` into a command prompt (``cmd.exe``)." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:54 +#: ../../docs/development/compiling/compiling_for_windows.rst:61 msgid "If the commands above don't work, make sure to add Python to your ``PATH`` environment variable after installing it, then check again. You can do so by running the Python installer again and enabling the option to add Python to the ``PATH``." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:62 +#: ../../docs/development/compiling/compiling_for_windows.rst:69 msgid "Installing Visual Studio caveats" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:64 +#: ../../docs/development/compiling/compiling_for_windows.rst:71 msgid "If installing Visual Studio 2017 or 2019, make sure to enable **C++** in the list of workflows to install." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:67 +#: ../../docs/development/compiling/compiling_for_windows.rst:74 msgid "If installing Visual Studio 2015, make sure to run a **Custom** installation instead of **Typical** and select **C++** as a language there." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:70 +#: ../../docs/development/compiling/compiling_for_windows.rst:77 msgid "If you've already made the mistake of installing Visual Studio without C++ support, run the installer again; it should present you a **Modify** button. Running the installer from *Add/Remove Programs* will only give you a **Repair** option, which won't let you install C++ tools." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:76 +#: ../../docs/development/compiling/compiling_for_windows.rst:83 msgid "Downloading Godot's source" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:78 +#: ../../docs/development/compiling/compiling_for_windows.rst:85 msgid "Godot's source code is `hosted on GitHub `_. Downloading it (cloning) using `Git `_ is recommended." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:81 +#: ../../docs/development/compiling/compiling_for_windows.rst:88 msgid "The tutorial will assume from now on that you placed the source code in ``C:\\godot``." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:85 +#: ../../docs/development/compiling/compiling_for_windows.rst:92 msgid "Compiling" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:88 +#: ../../docs/development/compiling/compiling_for_windows.rst:95 msgid "Selecting a compiler" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:90 +#: ../../docs/development/compiling/compiling_for_windows.rst:97 msgid "SCons will automatically find and use an existing Visual Studio installation. If you do not have Visual Studio installed, it will attempt to use MinGW instead. If you already have Visual Studio installed and want to use MinGW, pass ``use_mingw=yes`` to the SCons command line." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:95 +#: ../../docs/development/compiling/compiling_for_windows.rst:102 msgid "During development, using the Visual Studio compiler is usually a better idea, as it links the Godot binary much faster than MinGW. However, MinGW can produce more optimized binaries using link-time optimization (see below), making it a better choice for production use." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:101 +#: ../../docs/development/compiling/compiling_for_windows.rst:108 msgid "Running SCons" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:103 +#: ../../docs/development/compiling/compiling_for_windows.rst:110 msgid "After opening a command prompt, change to the root directory of the engine source code (using ``cd``) and type::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:108 +#: ../../docs/development/compiling/compiling_for_windows.rst:115 msgid "You can specify a number of CPU threads to use to speed up the build::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:112 +#: ../../docs/development/compiling/compiling_for_windows.rst:119 msgid "In general, it is OK to have at least as many threads compiling Godot as you have cores in your CPU, if not one or two more. Feel free to add the ``-j`` option to any SCons command you see below." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:116 +#: ../../docs/development/compiling/compiling_for_windows.rst:123 msgid "When compiling with multiple CPU threads, SCons may warn about pywin32 being missing. You can safely ignore this warning." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:119 +#: ../../docs/development/compiling/compiling_for_windows.rst:126 msgid "If all goes well, the resulting binary executable will be placed in ``C:\\godot\\bin\\`` with the name ``godot.windows.tools.32.exe`` or ``godot.windows.tools.64.exe``. By default, SCons will build a binary matching your CPU architecture, but this can be overridden using ``bits=64`` or ``bits=32``." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:125 +#: ../../docs/development/compiling/compiling_for_windows.rst:132 msgid "This executable file contains the whole engine and runs without any dependencies. Running it will bring up the Project Manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:128 +#: ../../docs/development/compiling/compiling_for_windows.rst:135 msgid "If you are compiling Godot for production use, then you can make the final executable smaller and faster by adding the SCons option ``target=release_debug``." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:132 +#: ../../docs/development/compiling/compiling_for_windows.rst:139 msgid "If you are compiling Godot with MinGW, you can make the binary even smaller and faster by adding the SCons option ``use_lto=yes``. As link-time optimization is a memory-intensive process, this will require about 3 GB of available RAM while compiling." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:137 +#: ../../docs/development/compiling/compiling_for_windows.rst:144 msgid "If you want to use separate editor settings for your own Godot builds and official releases, you can enable :ref:`doc_data_paths_self_contained_mode` by creating a file called ``._sc_`` or ``_sc_`` in the ``bin/`` folder." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:143 +#: ../../docs/development/compiling/compiling_for_windows.rst:150 msgid "Development in Visual Studio or other IDEs" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:145 +#: ../../docs/development/compiling/compiling_for_windows.rst:152 msgid "For most projects, using only scripting is enough but when development in C++ is needed, for creating modules or extending the engine, working with an IDE is usually desirable." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:149 +#: ../../docs/development/compiling/compiling_for_windows.rst:156 msgid "You can create a Visual Studio solution via SCons by running SCons with the ``vsproj=yes`` parameter, like this::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:154 +#: ../../docs/development/compiling/compiling_for_windows.rst:161 msgid "You will be able to open Godot's source in a Visual Studio solution now, and able to build Godot using Visual Studio's **Build** button." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:157 +#: ../../docs/development/compiling/compiling_for_windows.rst:164 msgid "If you need to edit the build commands, they are located in \"Godot\" project settings, NMAKE sheet. SCons is called at the end of the commands. If you make a mistake, copy the command from one of the other build configurations (debug, release_debug, release) or architectures (Win32/x64); they are equivalent." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:164 +#: ../../docs/development/compiling/compiling_for_windows.rst:171 msgid "Cross-compiling for Windows from other operating systems" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:166 +#: ../../docs/development/compiling/compiling_for_windows.rst:173 msgid "If you are a Linux or macOS user, you need to install `MinGW-w64 `__, which typically comes in 32-bit and 64-bit variants. The package names may differ based on your distribution, here are some known ones:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:172 +#: ../../docs/development/compiling/compiling_for_windows.rst:179 msgid "**Arch Linux**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:172 +#: ../../docs/development/compiling/compiling_for_windows.rst:179 msgid "Install `mingw-w64-gcc from the AUR`_." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:174 +#: ../../docs/development/compiling/compiling_for_windows.rst:181 msgid "**Debian** / **Ubuntu**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:178 +#: ../../docs/development/compiling/compiling_for_windows.rst:185 msgid "**Fedora**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:183 +#: ../../docs/development/compiling/compiling_for_windows.rst:190 msgid "**macOS**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:187 +#: ../../docs/development/compiling/compiling_for_windows.rst:194 msgid "**Mageia**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:195 +#: ../../docs/development/compiling/compiling_for_windows.rst:202 msgid "Before attempting the compilation, SCons will check for the following binaries in your ``PATH`` environment variable::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:201 +#: ../../docs/development/compiling/compiling_for_windows.rst:208 msgid "If the binaries are not located in the ``PATH`` (e.g. ``/usr/bin``), you can define the following environment variables to give a hint to the build system::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:208 +#: ../../docs/development/compiling/compiling_for_windows.rst:215 msgid "To make sure you are doing things correctly, executing the following in the shell should result in a working compiler (the version output may differ based on your system)::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:216 +#: ../../docs/development/compiling/compiling_for_windows.rst:223 msgid "Troubleshooting" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:218 +#: ../../docs/development/compiling/compiling_for_windows.rst:225 msgid "Cross-compiling from some Ubuntu versions may lead to `this bug `_, due to a default configuration lacking support for POSIX threading." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:222 +#: ../../docs/development/compiling/compiling_for_windows.rst:229 msgid "You can change that configuration following those instructions, for 64-bit::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:230 +#: ../../docs/development/compiling/compiling_for_windows.rst:237 msgid "And for 32-bit::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:238 +#: ../../docs/development/compiling/compiling_for_windows.rst:245 msgid "Creating Windows export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:240 +#: ../../docs/development/compiling/compiling_for_windows.rst:247 msgid "Windows export templates are created by compiling Godot without the editor, with the following flags::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:248 +#: ../../docs/development/compiling/compiling_for_windows.rst:255 msgid "If you plan on replacing the standard export templates, copy these to the following location, replacing ```` with the version identifier (such as ``3.1.1.stable`` or ``3.2.dev``)::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:254 +#: ../../docs/development/compiling/compiling_for_windows.rst:261 msgid "With the following names::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:261 +#: ../../docs/development/compiling/compiling_for_windows.rst:268 msgid "However, if you are using custom modules or custom engine code, you may instead want to configure your binaries as custom export templates here:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:267 +#: ../../docs/development/compiling/compiling_for_windows.rst:274 msgid "You don't need to copy them in this case, just reference the resulting files in the ``bin\\`` directory of your Godot source folder, so the next time you build, you will automatically have the custom templates referenced." msgstr "" diff --git a/sphinx/templates/development/compiling/compiling_for_x11.pot b/sphinx/templates/development/compiling/compiling_for_x11.pot index 8e3fd9822e..afc563fbfe 100644 --- a/sphinx/templates/development/compiling/compiling_for_x11.pot +++ b/sphinx/templates/development/compiling/compiling_for_x11.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -153,66 +153,78 @@ msgid "If you want to use separate editor settings for your own Godot builds and msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:132 -msgid "Building export templates" +msgid "Compiling a headless/server build" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:134 -msgid "Linux binaries usually won't run on distributions that are older than the distribution they were built on. If you wish to distribute binaries that work on most distributions, you should build them on an old distribution such as Ubuntu 16.04. You can use a virtual machine or a container to set up a suitable build environment." +msgid "To compile a *headless* build which provides editor functionality to export projects in an automated manner, use::" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:142 -msgid "To build X11 (Linux, \\*BSD) export templates, run the build system with the following parameters:" +#: ../../docs/development/compiling/compiling_for_x11.rst:139 +msgid "To compile a *server* build which is optimized to run dedicated game servers, use::" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:145 +msgid "Building export templates" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:147 +msgid "Linux binaries usually won't run on distributions that are older than the distribution they were built on. If you wish to distribute binaries that work on most distributions, you should build them on an old distribution such as Ubuntu 16.04. You can use a virtual machine or a container to set up a suitable build environment." +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:155 +msgid "To build X11 (Linux, \\*BSD) export templates, run the build system with the following parameters:" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:158 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:152 +#: ../../docs/development/compiling/compiling_for_x11.rst:165 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:172 msgid "Note that cross-compiling for the opposite bits (64/32) as your host platform is not always straight-forward and might need a chroot environment." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:162 +#: ../../docs/development/compiling/compiling_for_x11.rst:175 msgid "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:168 +#: ../../docs/development/compiling/compiling_for_x11.rst:181 msgid "and named like this (even for \\*BSD which is seen as \"Linux X11\" by Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:177 +#: ../../docs/development/compiling/compiling_for_x11.rst:190 msgid "However, if you are writing your custom modules or custom C++ code, you might instead want to configure your binaries as custom export templates here:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:183 +#: ../../docs/development/compiling/compiling_for_x11.rst:196 msgid "You don't even need to copy them, you can just reference the resulting files in the ``bin/`` directory of your Godot source folder, so the next time you build, you automatically have the custom templates referenced." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:188 +#: ../../docs/development/compiling/compiling_for_x11.rst:201 msgid "Using Clang and LLD for faster development" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:190 +#: ../../docs/development/compiling/compiling_for_x11.rst:203 msgid "You can also use Clang and LLD to build Godot. This has two upsides compared to the default GCC + GNU ld setup:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:193 +#: ../../docs/development/compiling/compiling_for_x11.rst:206 msgid "LLD links Godot significantly faster compared to GNU ld or gold. This leads to faster iteration times." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:195 +#: ../../docs/development/compiling/compiling_for_x11.rst:208 msgid "Clang tends to give more useful error messages compared to GCC." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:197 +#: ../../docs/development/compiling/compiling_for_x11.rst:210 msgid "To do so, install Clang and the ``lld`` package from your distribution's package manager then use the following SCons command::" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:202 +#: ../../docs/development/compiling/compiling_for_x11.rst:215 msgid "It's still recommended to use GCC for production builds as they can be compiled using link-time optimization, making the resulting binaries smaller and faster." msgstr "" diff --git a/sphinx/templates/development/compiling/compiling_with_mono.pot b/sphinx/templates/development/compiling/compiling_with_mono.pot index 27e8574340..25c93788b3 100644 --- a/sphinx/templates/development/compiling/compiling_with_mono.pot +++ b/sphinx/templates/development/compiling/compiling_with_mono.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/compiling/compiling_with_script_encryption_key.pot b/sphinx/templates/development/compiling/compiling_with_script_encryption_key.pot index 1f7c4132d9..838b3266d0 100644 --- a/sphinx/templates/development/compiling/compiling_with_script_encryption_key.pot +++ b/sphinx/templates/development/compiling/compiling_with_script_encryption_key.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/compiling/cross-compiling_for_ios_on_linux.pot b/sphinx/templates/development/compiling/cross-compiling_for_ios_on_linux.pot index 696dea2565..58b99798ab 100644 --- a/sphinx/templates/development/compiling/cross-compiling_for_ios_on_linux.pot +++ b/sphinx/templates/development/compiling/cross-compiling_for_ios_on_linux.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/compiling/getting_source.pot b/sphinx/templates/development/compiling/getting_source.pot index f786bd7439..f4d9af942d 100644 --- a/sphinx/templates/development/compiling/getting_source.pot +++ b/sphinx/templates/development/compiling/getting_source.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/compiling/index.pot b/sphinx/templates/development/compiling/index.pot index 88becbfffc..43976cf8c9 100644 --- a/sphinx/templates/development/compiling/index.pot +++ b/sphinx/templates/development/compiling/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/compiling/introduction_to_the_buildsystem.pot b/sphinx/templates/development/compiling/introduction_to_the_buildsystem.pot index c57f9e860e..94e6347d29 100644 --- a/sphinx/templates/development/compiling/introduction_to_the_buildsystem.pot +++ b/sphinx/templates/development/compiling/introduction_to_the_buildsystem.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -188,27 +188,67 @@ msgstr "" msgid "Check the output of ``scons --help`` for details about each option for the version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:196 -msgid "Export templates" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +msgid "Overriding the build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -msgid "Official export templates are downloaded from the Godot Engine site: `godotengine.org `__. However, you might want to build them yourself (in case you want newer ones, you are using custom modules, or simply don't trust your own shadow)." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:201 +msgid "Using a file" msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:203 +msgid "The default ``custom.py`` file can be created at the root of the Godot Engine source to initialize any SCons build options passed via the command line:" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:215 +msgid "You can also disable some of the builtin modules before compiling, saving some time it takes to build the engine, see :ref:`doc_optimizing_for_size` page for more details." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:218 +msgid "Another custom file can be specified explicitly with the ``profile`` command line option, both overriding the default build configuration:" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:225 +msgid "Build options set from the file can be overridden by the command line options." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +msgid "It's also possible to override the options conditionally:" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:243 +msgid "Using the SCONSFLAGS" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:245 +msgid "``SCONSFLAGS`` is an environment variable which is used by the SCons to set the options automatically without having to supply them via the command line." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:248 +msgid "For instance, you may want to build Godot in parallel with the aforementioned ``-j`` option for all the future builds:" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:265 +msgid "Export templates" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:267 +msgid "Official export templates are downloaded from the Godot Engine site: `godotengine.org `__. However, you might want to build them yourself (in case you want newer ones, you are using custom modules, or simply don't trust your own shadow)." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:272 msgid "If you download the official export templates package and unzip it, you will notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:226 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:295 msgid "To create those yourself, follow the instructions detailed for each platform in this same tutorial section. Each platform explains how to create its own template." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:230 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:299 msgid "The ``version.txt`` file should contain the corresponding Godot version identifier. This file is used to install export templates in a version-specific directory to avoid conflicts. For instance, if you are building export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1.stable`` on the first line (and nothing else). This version identifier is based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` lines of the `version.py file in the Godot Git repository `__." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:238 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:307 msgid "If you are developing for multiple platforms, macOS is definitely the most convenient host platform for cross-compilation, since you can cross-compile for almost every target (except for UWP). Linux and Windows come in second place, but Linux has the advantage of being the easier platform to set this up." msgstr "" diff --git a/sphinx/templates/development/compiling/optimizing_for_size.pot b/sphinx/templates/development/compiling/optimizing_for_size.pot index a805aa3af4..53d2d0041f 100644 --- a/sphinx/templates/development/compiling/optimizing_for_size.pot +++ b/sphinx/templates/development/compiling/optimizing_for_size.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -68,47 +68,55 @@ msgstr "" msgid "If this proves not to work for your use case, you should review the list of modules and see which ones you actually still need for your game (e.g. you might want to keep networking-related modules, regex support, or theora/webm to play videos)." msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:67 +#: ../../docs/development/compiling/optimizing_for_size.rst:66 +msgid "Alternatively, you can supply a list of disabled modules by creating ``custom.py`` at the root of the source, with the contents similar to the following:" +msgstr "" + +#: ../../docs/development/compiling/optimizing_for_size.rst:110 +msgid ":ref:`doc_overriding_build_options`." +msgstr "" + +#: ../../docs/development/compiling/optimizing_for_size.rst:113 msgid "Optimizing for size instead of speed" msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:69 +#: ../../docs/development/compiling/optimizing_for_size.rst:115 msgid "Godot 3.1 onwards allows compiling using size optimizations (instead of speed). To enable this, set the ``optimize`` flag to ``size``:" msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:76 +#: ../../docs/development/compiling/optimizing_for_size.rst:122 msgid "Some platforms such as WebAssembly already use this mode by default." msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:79 +#: ../../docs/development/compiling/optimizing_for_size.rst:125 msgid "Compiling with link-time optimization" msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:81 +#: ../../docs/development/compiling/optimizing_for_size.rst:127 msgid "Enabling link-time optimization produces more efficient binaries, both in terms of performance and file size. It works by eliminating duplicate template functions and unused code. It can currently be used with the GCC and MSVC compilers:" msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:90 +#: ../../docs/development/compiling/optimizing_for_size.rst:136 msgid "Linking becomes much slower with this option, so it should be used only for release builds." msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:94 +#: ../../docs/development/compiling/optimizing_for_size.rst:140 msgid "Stripping binaries" msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:96 +#: ../../docs/development/compiling/optimizing_for_size.rst:142 msgid "If you build from source, remember to strip debug symbols from binaries:" msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:103 +#: ../../docs/development/compiling/optimizing_for_size.rst:149 msgid "Using UPX to compress binaries" msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:105 +#: ../../docs/development/compiling/optimizing_for_size.rst:151 msgid "If you are targeting desktop platforms, the `UPX `_ compressor can be used. This can reduce binary size considerably." msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:109 +#: ../../docs/development/compiling/optimizing_for_size.rst:155 msgid "However, keep in mind that some antivirus programs may detect UPX-packed binaries as a virus. Therefore, if you are releasing a commercial game, make sure to sign your binaries or use a platform that will distribute them." msgstr "" diff --git a/sphinx/templates/development/cpp/binding_to_external_libraries.pot b/sphinx/templates/development/cpp/binding_to_external_libraries.pot index 78a647377a..4984ee5836 100644 --- a/sphinx/templates/development/cpp/binding_to_external_libraries.pot +++ b/sphinx/templates/development/cpp/binding_to_external_libraries.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/configuring_an_ide.pot b/sphinx/templates/development/cpp/configuring_an_ide.pot deleted file mode 100644 index d4c4b71439..0000000000 --- a/sphinx/templates/development/cpp/configuring_an_ide.pot +++ /dev/null @@ -1,563 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2014-2020, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0) -# This file is distributed under the same license as the Godot Engine package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Godot Engine latest\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../docs/development/cpp/configuring_an_ide.rst:4 -msgid "Configuring an IDE" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:6 -msgid "We assume that you have already `cloned `_ and :ref:`compiled ` Godot." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:9 -msgid "You can easily develop Godot with any text editor and by invoking ``scons`` on the command line, but if you want to work with an IDE (Integrated Development Environment), here are setup instructions for some popular ones:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:13 -msgid ":ref:`Qt Creator ` (all desktop platforms)" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:14 -msgid ":ref:`Kdevelop ` (all desktop platforms)" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:15 -msgid ":ref:`Xcode ` (macOS)" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:16 -msgid ":ref:`Visual Studio ` (Windows)" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:17 -msgid ":ref:`Visual Studio Code` (all desktop platforms)" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:18 -msgid ":ref:`Android Studio` (all desktop platforms)" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:19 -msgid ":ref:`CLion` (all desktop platforms)" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:21 -msgid "It is possible to use other IDEs, but their setup is not documented yet." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:26 -msgid "Qt Creator" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:29 -msgid "Importing the project" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:31 -msgid "Choose *New Project* -> *Import Project* -> *Import Existing Project*." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:35 -msgid "Set the path to your Godot root directory and enter the project name." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:39 -msgid "Here you can choose which folders and files will be visible to the project. C/C++ files are added automatically. Potentially useful additions: \\*.py for buildsystem files, \\*.java for Android development, \\*.mm for macOS. Click \"Next\"." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:45 -msgid "Click *Finish*." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:46 -msgid "Add a line containing ``.`` to *project_name.includes* to get working code completion." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:51 -msgid "Build and run" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:53 -msgid "Build configuration:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:55 -msgid "Click on *Projects* and open the *Build* tab." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:56 -msgid "Delete the pre-defined ``make`` build step." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:60 -msgid "Click *Add Build Step* -> *Custom Process Step*." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:64 -msgid "Type ``scons`` in the *Command* field. If it fails with 'Could not start process \"scons\"', it can mean that ``scons`` is not in your ``PATH`` environment variable, so you may have to use the full path to the SCons binary." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:67 -msgid "Fill the *Arguments* field with your compilation options. (e.g.: ``p=x11 target=debug -j 4``)" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:71 -msgid "Run configuration:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:73 -msgid "Open the *Run* tab." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:74 -msgid "Point the *Executable* to your compiled Godot binary (e.g: ``%{buildDir}/bin/godot.x11.opt.tools.64``)" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:75 -msgid "If you want to run a specific game or project, point *Working directory* to the game directory." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:76 -msgid "If you want to run the editor, add ``-e`` to the *Command line arguments* field." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:81 -msgid "Updating sources after pulling latest commits" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:83 -msgid "As a developer you usually want to frequently pull the latest commits from the upstream git repository or a specific fork etc. However, this brings a little problem with it: as the development continues, source files (and folders) are added or removed. These changes need to be reflected in your project files for Qt Creator too, so you continue to have a nice experience coding in it. A simple way to check is to right click at your root folder in the \"Projects View\" and click on \"Edit files...\"" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:93 -msgid "Now a new dialog should appear that is similar in functionality to the one in the third step of the \"Importing the project\" section. Here you can check whether you want to add/remove specific files and/or folders. You can choose by clicking with your mouse or just simply by clicking the \"Apply Filter\" button. A simple click on \"Ok\" and you're ready to continue your work." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:101 -msgid "Code style configuration" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:103 -msgid "Developers must follow the project's :ref:`code style ` and IDE should help them to do it. By default, Qt Creator does use spaces for indentation which is incorrect for Godot project. You can change this behavior by changing the \"Code Style\" in *Options* -> *C++*." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:110 -msgid "Click on *Edit* to change the current settings, then click on *Copy Built-in Code Style* button to set a new code style. Set a name for it (e.g. Godot) and change the Tab policy to be *Tabs Only*." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:119 -msgid "KDevelop" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:121 -msgid "`KDevelop `_ is a free, open source IDE for all desktop platforms." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:123 -msgid "You can find a video tutorial `here `_. Or you may follow this text version tutorial." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:126 -msgid "Start by opening KDevelop and choosing \"open project\"." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:130 -msgid "Choose the directory where you cloned Godot." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:132 -msgid "On the next screen, choose \"Custom Build System\" for the *Project manager*." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:136 -msgid "Now that the project has been imported, open the project configuration." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:140 -msgid "Add the following includes/imports:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:153 -msgid "Apply the changes." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:155 -msgid "Switch to the \"Custom Build System\" tab. Add a build configuration and keep the build directory blank. Enable build tools and add ``scons`` as the executable then add ``platform=x11 target=debug`` (``platform=osx`` if you're on macOS) as the arguments." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:162 -msgid "Next we need to tell KDevelop where to find the binary. From the \"Run\" menu, choose \"Configure Launches\"." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:167 -msgid "Click \"Add\" if no launcher exists. Then add the path to your executable in the executable section. Your executable should be located in the ``bin/`` sub-directory and should be named something like ``godot.x11.tools.64`` (the name could be different depending on your platform and depending on your build options)." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:175 -msgid "That's it! Now you should be good to go :)" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:181 -msgid "Xcode" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:184 -#: ../../docs/development/cpp/configuring_an_ide.rst:373 -msgid "Project setup" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:186 -msgid "Create an Xcode external build project anywhere" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:190 -msgid "Set the *Build tool* to the path to scons" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:192 -msgid "Modify Build Target's Xcode Info Tab:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:194 -msgid "Set *Arguments* to something like: platform=osx tools=yes bits=64 target=debug" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:195 -msgid "Set *Directory* to the path to Godot's source folder. Keep it blank if project is already there." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:196 -msgid "You may uncheck *Pass build settings in environment*" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:200 -msgid "Add a Command Line Target:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:202 -msgid "Go to Xcode File > New > Target... and add a new Xcode command line target" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:208 -msgid "Name it something so you know not to compile with this target" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:209 -msgid "e.g. ``GodotXcodeIndex``" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:210 -msgid "Goto the newly created target's *Build Settings* tab and search for *Header Search Paths*" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:211 -msgid "Set *Header Search Paths* to an absolute path to Godot's source folder" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:212 -msgid "Make it recursive by adding two \\*'s to the end of the path" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:213 -msgid "e.g. ``/Users/me/repos/godot-source/\\**``" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:215 -msgid "Add Godot Source to the Project:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:217 -msgid "Drag and drop Godot source into project file browser." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:218 -msgid "Uncheck *Create External Build System*" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:222 -msgid "Click Next" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:223 -msgid "Select *create groups*" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:227 -msgid "Check off only your command line target in the *Add to targets* section" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:228 -msgid "Click finish. Xcode will now index the files." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:229 -msgid "Grab a cup of coffee... Maybe make something to eat, too" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:230 -msgid "You should have jump to definition, auto completion, and full syntax highlighting when it is done." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:233 -msgid "Scheme setup" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:235 -msgid "Edit Build Scheme of External Build Target:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:237 -msgid "Open scheme editor of external build target" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:238 -msgid "Expand the *Build* menu" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:239 -msgid "Goto *Post Actions*" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:240 -msgid "Add a new script run action, select your project in ``Provide build settings from`` as this allows you to use ``${PROJECT_DIR}`` variable." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:244 -msgid "Write a script that gives the binary a name that Xcode will recognize" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:245 -msgid "e.g. ``ln -f ${PROJECT_DIR}/godot/bin/godot.osx.tools.64 ${PROJECT_DIR}/godot/bin/godot``" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:246 -msgid "Build the external build target" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:248 -msgid "Edit Run Scheme of External Build Target:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:250 -msgid "Open the scheme editor again" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:251 -msgid "Click Run" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:255 -msgid "Set the *Executable* to the file you linked in your post build action script" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:256 -msgid "Check *Debug executable* if it isn't already" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:257 -msgid "You can go to *Arguments* tab and add an -e and a -path to a project to debug the editor not the project selection screen" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:260 -msgid "Test it:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:262 -msgid "Set a breakpoint in platform/osx/godot_main_osx.mm" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:263 -msgid "It should break at the point!" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:269 -msgid "Visual Studio" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:271 -msgid "Visual Studio Community is free for non-commercial use and has many useful features, such as memory view, performance view, source control and more. You can get it `from Microsoft `__." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:276 -msgid "Setup" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:278 -msgid "To start developing with Visual Studio, follow these steps:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:280 -msgid "Open the Visual Studio Installer and install the C++ package:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:284 -msgid "Open a Command Prompt or PowerShell window, use ``cd`` to reach the Godot source directory and run ``scons platform=windows vsproj=yes``." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:287 -msgid "Now open the Godot folder by clicking **Open a project or solution** and choose ``godot.sln``. - You can also double-click the ``godot.sln`` file in Explorer." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:291 -msgid "You can now start developing with Visual Studio." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:294 -msgid "Debugging" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:296 -msgid "Visual Studio features a powerful debugger. This allows the user to examine Godot's source code, stop at specific points in the code, make changes, and view them on the run." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:299 -msgid "Debugging the Godot Engine inside the editor will require an extra setup step." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:301 -msgid "Because opening Godot opens the Project Manager at first instead of the project you're working on, the debugger will detach as soon as you open a project. This means that the debugger will stop, even though Godot is still running in another process." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:306 -msgid "To overcome this, you need to edit the debugging command line arguments in VS. In your project, click **Project > Project Properties**:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:311 -msgid "Then add this to the command arguments:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:315 -msgid "The ``-e`` flag is for entering the editor directly (which skips the Project Manager)." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:316 -msgid "The ``--path`` argument should be an *absolute* path to a project directory (not a `project.godot` file)." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:319 -msgid "To learn more about command line arguments, refer to the :ref:`command line tutorial `." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:322 -msgid "To check that everything is working, put a breakpoint in ``main.cpp`` and press F5 to start debugging." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:331 -msgid "Visual Studio Code" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:333 -msgid "Ensure that C/C++ extension is installed. You can find instructions in `docs `_." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:335 -msgid "Open cloned godot folder in VS Code with ``File > Open Folder...``" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:337 -msgid "In order to build the project, you need two configuration files: *launch.json* and *tasks.json*. To create them:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:340 -msgid "Open *Debug* view by pressing :kbd:`Ctrl + Shift + D` and select cogwheel with an orange dot:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:344 -msgid "Select *C++ (GDB/LLDB)* (it might be named differently on macOS or Windows)" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:346 -msgid "Update *launch.json* to match:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:350 -msgid "(Note that *godot.x11.tools.64* in \"program\" value might be named differently on macOS or Windows)" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:352 -msgid "Create *tasks.json* by starting the Debug process with :kbd:`F5`. VS Code will show a dialog with a *Configure Task* button. Tap it and select *Create tasks.json file from template*, then select *Others*" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:354 -msgid "Update *tasks.json* to match:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:358 -msgid "(Note that *platform=x11* will be different for macOX and Windows)" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:360 -msgid "You can now start the Debug process again to test that everything works." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:362 -msgid "If the build phase fails, check the console for hints. On Linux it's most likely that some dependencies are missing. Check :ref:`Compiling for X11 (Linux, \\*BSD) `" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:368 -msgid "Android Studio" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:370 -msgid "`Android Studio `_ is a `JetBrains `_ IDE for Android development. It has a feature-rich editor which supports Java and C/C++, so it can be used for development of the Godot core engine, and Android platform codebases." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:375 -msgid "From the Android Studio *Welcome to Android Studio* window, select *Open an existing Android Studio project*" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:379 -msgid "Navigate to ``/platform/android/java`` and select the ``settings.gradle`` gradle file." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:380 -msgid "Android Studio will import and index the project." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:381 -msgid "To build the project, follow the :ref:`compiling instructions `." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:386 -msgid "CLion" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:388 -msgid "`CLion `_ is a commercial IDE for C++. It requires a ``CMakeLists.txt`` file as a project file, which is problematic for Godot which uses the SCons buildsystem and not CMake. However, there is a ``CMakeLists.txt`` configuration for :ref:`Android Studio ` which can also be used by CLion." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:390 -msgid "Choose *File* -> *Open*." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:392 -msgid "Navigation to your Godot Git clone, and select the folder ``platform/android/java/lib`` (the ``CMakeLists.txt`` file is located there). Select the folder, not the ``CMakeLists.txt file``. Then click *Ok*." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:396 -msgid "If this popup window appears, select *This window* to open the project." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:400 -msgid "Choose *Tools* -> *CMake* -> *Change Project Root* and select the root Godot folder." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:404 -msgid "You should be now be able to see all the project files. Autocomplete should work, when the project finish indexing." -msgstr "" - diff --git a/sphinx/templates/development/cpp/configuring_an_ide/android_studio.pot b/sphinx/templates/development/cpp/configuring_an_ide/android_studio.pot new file mode 100644 index 0000000000..833eb496ee --- /dev/null +++ b/sphinx/templates/development/cpp/configuring_an_ide/android_studio.pot @@ -0,0 +1,46 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2020, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0) +# This file is distributed under the same license as the Godot Engine package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine latest\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/development/cpp/configuring_an_ide/android_studio.rst:4 +msgid "Android Studio" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/android_studio.rst:6 +msgid "`Android Studio `_ is a free `JetBrains `_ IDE for Android development. It has a feature-rich editor which supports Java and C/C++. It can be used to work on Godot's core engine as well as the Android platform codebase." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/android_studio.rst:11 +msgid "From Android Studio's welcome window, select **Open an existing Android Studio project**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/android_studio.rst:16 +msgid "Navigate to ``/platform/android/java`` and select the ``settings.gradle`` gradle file." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/android_studio.rst:17 +msgid "Android Studio will import and index the project." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/android_studio.rst:18 +msgid "To build the project, follow the :ref:`compiling instructions `." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/android_studio.rst:20 +msgid "If you run into any issues, ask for help in one of `Godot's community channels `__." +msgstr "" + diff --git a/sphinx/templates/development/cpp/configuring_an_ide/clion.pot b/sphinx/templates/development/cpp/configuring_an_ide/clion.pot new file mode 100644 index 0000000000..b3d10027bb --- /dev/null +++ b/sphinx/templates/development/cpp/configuring_an_ide/clion.pot @@ -0,0 +1,50 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2020, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0) +# This file is distributed under the same license as the Godot Engine package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine latest\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/development/cpp/configuring_an_ide/clion.rst:4 +msgid "CLion" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/clion.rst:6 +msgid "`CLion `_ is a commercial IDE for C++. It requires a ``CMakeLists.txt`` file as a project file, which is problematic for Godot which uses the SCons buildsystem instead of CMake. However, there is a ``CMakeLists.txt`` configuration for :ref:`Android Studio ` which can also be used by CLion." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/clion.rst:13 +msgid "If you've already opened another project, choose **File > Open** at the top of the CLion window. Otherwise, choose the option to import an existing project in the Welcome window." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/clion.rst:16 +msgid "Navigate to your Godot Git clone then select the folder ``platform/android/java/lib`` - the ``CMakeLists.txt`` file is located there. Select the folder (*not* the ``CMakeLists.txt file``), then click **OK**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/clion.rst:22 +msgid "If this popup window appears, select **This Window** to open the project:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/clion.rst:26 +msgid "Choose **Tools > CMake >Change Project Root** and select the root Godot folder." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/clion.rst:30 +msgid "You should be now be able to see all the project files. Autocomplete should work once the project has finished indexing." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/clion.rst:33 +msgid "If you run into any issues, ask for help in one of `Godot's community channels `__." +msgstr "" + diff --git a/sphinx/templates/development/cpp/configuring_an_ide/index.pot b/sphinx/templates/development/cpp/configuring_an_ide/index.pot new file mode 100644 index 0000000000..fbc3701967 --- /dev/null +++ b/sphinx/templates/development/cpp/configuring_an_ide/index.pot @@ -0,0 +1,34 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2020, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0) +# This file is distributed under the same license as the Godot Engine package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine latest\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/development/cpp/configuring_an_ide/index.rst:2 +msgid "Configuring an IDE" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/index.rst:4 +msgid "We assume that you have already `cloned `_ and :ref:`compiled ` Godot." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/index.rst:7 +msgid "You can easily develop Godot with any text editor and by invoking ``scons`` on the command line, but if you want to work with an IDE (Integrated Development Environment), here are setup instructions for some popular ones:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/index.rst:23 +msgid "It is possible to use other IDEs, but their setup is not documented yet." +msgstr "" + diff --git a/sphinx/templates/development/cpp/configuring_an_ide/kdevelop.pot b/sphinx/templates/development/cpp/configuring_an_ide/kdevelop.pot new file mode 100644 index 0000000000..c3dde120e9 --- /dev/null +++ b/sphinx/templates/development/cpp/configuring_an_ide/kdevelop.pot @@ -0,0 +1,66 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2020, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0) +# This file is distributed under the same license as the Godot Engine package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine latest\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:4 +msgid "KDevelop" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:6 +msgid "`KDevelop `_ is a free, open source IDE for all desktop platforms." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:8 +msgid "Start by opening KDevelop and choosing **Open Project**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:12 +msgid "Choose the directory where you cloned Godot." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:14 +msgid "On the next screen, choose **Custom Build System** for the **Project Manager**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:18 +msgid "Now that the project has been imported, open the project configuration." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:22 +msgid "Add the following includes/imports:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:35 +msgid "Apply the changes." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:37 +msgid "Switch to the **Custom Build System** tab. Add a build configuration and keep the build directory blank. Enable build tools and add ``scons`` as the executable then add ``platform=linuxbsd target=debug`` (``platform=osx`` if you're on macOS) as the arguments." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:44 +msgid "Next, we need to tell KDevelop where to find the binary. From the **Run** menu, choose **Configure Launches**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:49 +msgid "Click **Add** if no launcher exists. Then add the path to your executable in the executable section. Your executable should be located in the ``bin/`` subdirectory and should be named something like ``godot.linuxbsd.tools.64`` (the name could be different depending on your platform and build options)." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:57 +msgid "If you run into any issues, ask for help in one of `Godot's community channels `__." +msgstr "" + diff --git a/sphinx/templates/development/cpp/configuring_an_ide/qt_creator.pot b/sphinx/templates/development/cpp/configuring_an_ide/qt_creator.pot new file mode 100644 index 0000000000..32f519e9b5 --- /dev/null +++ b/sphinx/templates/development/cpp/configuring_an_ide/qt_creator.pot @@ -0,0 +1,126 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2020, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0) +# This file is distributed under the same license as the Godot Engine package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine latest\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:4 +msgid "Qt Creator" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:6 +msgid "Qt Creator is a free, open source IDE for all desktop platforms." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:9 +msgid "Importing the project" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:11 +msgid "Choose **New Project > Import Project > Import Existing Project**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:15 +msgid "Set the path to your Godot root directory and enter the project name." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:19 +msgid "Here you can choose which folders and files will be visible to the project. C/C++ files are added automatically. Potentially useful additions: ``*.py`` for buildsystem files, ``*.java`` for Android platform development, ``*.mm`` for macOS platform development. Click **Next**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:26 +msgid "Click **Finish**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:27 +msgid "Add a line containing ``.`` to ``project_name.includes`` to get working code completion." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:33 +msgid "Build and run" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:35 +msgid "Build configuration:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:37 +msgid "Click on **Projects** and open the **Build** tab." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:38 +msgid "Delete the predefined ``make`` build step." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:42 +msgid "Click **Add Build Step > Custom Process Step**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:46 +msgid "Type ``scons`` in the **Command** field. If it fails with ``Could not start process \"scons\"``, it can mean that ``scons`` is not in your ``PATH`` environment variable. In this case, you'll have to specify the full path to the SCons binary." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:50 +msgid "Fill the **Arguments** field with your compilation options (e.g.: ``p=linuxbsd target=debug -j 4``)." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:55 +msgid "Run configuration:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:57 +msgid "Open the **Run** tab." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:58 +msgid "Point the **Executable** to your compiled Godot binary (e.g: ``%{buildDir}/bin/godot.linuxbsd.opt.tools.64``)." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:60 +msgid "If you want to run a specific project, point **Working directory** to the project folder." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:62 +msgid "If you want to run the editor, add ``-e`` to the **Command line arguments** field." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:68 +msgid "Updating sources after pulling latest commits" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:70 +msgid "As a developer, you usually want to frequently pull the latest commits from the upstream Git repository or a specific fork. However, this brings a problem with it: as the development continues, source files (and folders) are added or removed. These changes need to be reflected in your project files for Qt Creator too, so you continue to have a nice programming experience. A simple way to check is to right click at your root folder in the **Projects View** and click on **Edit files...**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:80 +msgid "Now a new dialog should appear that is similar in functionality to the one in the third step of the *Importing the project* section above. Here, you can check whether you want to add/remove specific files and/or folders. You can choose by clicking with your mouse or just simply by clicking the **Apply Filter** button. Click on **OK** and you're ready to continue working." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:89 +msgid "Code style configuration" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:91 +msgid "Developers must follow the project's :ref:`code style ` and the IDE should help them follow it. By default, Qt Creator does use spaces for indentation which doesn't match the Godot code style guidelines. You can change this behavior by changing the **Code Style** in **Options > C++**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:98 +msgid "Click on **Edit** to change the current settings, then click on **Copy Built-in Code Style** button to set a new code style. Set a name for it (e.g. Godot) and change the Tab policy to be **Tabs Only**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:104 +msgid "If you run into any issues, ask for help in one of `Godot's community channels `__." +msgstr "" + diff --git a/sphinx/templates/development/cpp/configuring_an_ide/visual_studio.pot b/sphinx/templates/development/cpp/configuring_an_ide/visual_studio.pot new file mode 100644 index 0000000000..418167c5aa --- /dev/null +++ b/sphinx/templates/development/cpp/configuring_an_ide/visual_studio.pot @@ -0,0 +1,94 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2020, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0) +# This file is distributed under the same license as the Godot Engine package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine latest\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:4 +msgid "Visual Studio" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:6 +msgid "Visual Studio Community is a Windows-only IDE that's free for non-commercial use. It has many useful features, such as memory view, performance view, source control and more. You can get it `from Microsoft `__." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:12 +msgid "Setup" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:14 +msgid "To start developing with Visual Studio, follow these steps:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:16 +msgid "Open the Visual Studio Installer and install the C++ package:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:20 +msgid "Open a Command Prompt or PowerShell window, use ``cd`` to reach the Godot source directory and run ``scons platform=windows vsproj=yes``." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:23 +msgid "Now open the Godot folder by clicking **Open a project or solution** and choose ``godot.sln``. - You can also double-click the ``godot.sln`` file in Explorer." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:27 +msgid "You can now start developing with Visual Studio." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:30 +msgid "Debugging" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:32 +msgid "Visual Studio features a powerful debugger. This allows the user to examine Godot's source code, stop at specific points in the code, make changes, and view them on the run." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:35 +msgid "Debugging the Godot Engine inside the editor will require an extra setup step." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:37 +msgid "Because opening Godot opens the Project Manager at first instead of the project you're working on, the debugger will detach as soon as you open a project. This means that the debugger will stop, even though Godot is still running in another process." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:42 +msgid "To overcome this, you need to edit the debugging command line arguments in VS. In your project, click **Project > Project Properties**:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:47 +msgid "Then add this to the command arguments:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:51 +msgid "The ``-e`` flag is for entering the editor directly (which skips the Project Manager)." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:52 +msgid "The ``--path`` argument should be an *absolute* path to a project directory (not a `project.godot` file)." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:55 +msgid "To learn more about command line arguments, refer to the :ref:`command line tutorial `." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:58 +msgid "To check that everything is working, put a breakpoint in ``main.cpp`` and press F5 to start debugging." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:63 +msgid "If you run into any issues, ask for help in one of `Godot's community channels `__." +msgstr "" + diff --git a/sphinx/templates/development/cpp/configuring_an_ide/visual_studio_code.pot b/sphinx/templates/development/cpp/configuring_an_ide/visual_studio_code.pot new file mode 100644 index 0000000000..2933f46831 --- /dev/null +++ b/sphinx/templates/development/cpp/configuring_an_ide/visual_studio_code.pot @@ -0,0 +1,78 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2020, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0) +# This file is distributed under the same license as the Godot Engine package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine latest\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:4 +msgid "Visual Studio Code" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:6 +msgid "Visual Studio Code is a free cross-platform IDE (not to be confused with :ref:`doc_configuring_an_ide_vs`). You can get it `from Microsoft `__." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:11 +msgid "Make sure the C/C++ extension is installed. You can find instructions in the `documentation `_." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:13 +msgid "Open the cloned Godot folder in Visual Studio Code with **File > Open Folder...**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:16 +msgid "In order to build the project, you need two configuration files: ``launch.json`` and ``tasks.json``. To create them:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:19 +msgid "Open the **Debug** view by pressing :kbd:`Ctrl + Shift + D` and select the cogwheel with an orange dot:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:24 +msgid "Select **C++ (GDB/LLDB)** (it might be named differently on macOS or Windows)." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:26 +msgid "Update ``launch.json`` to match:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:30 +msgid "If you're following this guide on macOS or Windows, you will have to adjust ``godot.linuxbsd.tools.64`` accordingly." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:33 +msgid "Create a ``tasks.json`` file by starting the Debug process with :kbd:`F5`. Visual Studio Code will show a dialog with a **Configure Task** button. Choose it and select **Create tasks.json file from template**, then select **Others**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:37 +msgid "Update ``tasks.json`` to match:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:41 +msgid "If you're following this guide on macOS or Windows, you will have to adjust ``platform=linuxbsd`` accordingly." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:44 +msgid "You can now start the Debug process again to test that everything works." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:45 +msgid "If the build phase fails, check the console for hints. On Linux, it's most likely due to missing dependencies. Check :ref:`doc_compiling_for_linuxbsd`." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:48 +msgid "If you run into any issues, ask for help in one of `Godot's community channels `__." +msgstr "" + diff --git a/sphinx/templates/development/cpp/configuring_an_ide/xcode.pot b/sphinx/templates/development/cpp/configuring_an_ide/xcode.pot new file mode 100644 index 0000000000..824e817b3e --- /dev/null +++ b/sphinx/templates/development/cpp/configuring_an_ide/xcode.pot @@ -0,0 +1,182 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2020, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0) +# This file is distributed under the same license as the Godot Engine package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine latest\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:4 +msgid "Xcode" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:6 +msgid "Xcode is a free macOS-only IDE. You can download it from the Mac App Store." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:9 +msgid "Project setup" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:11 +msgid "Create an Xcode external build project anywhere." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:15 +msgid "Go to the build target's **Info** tab, then:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:17 +msgid "Set **Build Tool** to the full path to SCons." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:18 +msgid "Set **Arguments** to something like ``platform=osx tools=yes bits=64 target=debug``." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:20 +msgid "Set **Directory** to the path to Godot's source folder." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:21 +msgid "You may uncheck **Pass build settings in environment**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:25 +msgid "Add a Command Line Tool target which will be used for indexing the project:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:27 +msgid "In Xcode's menu, choose **File > New > Target...** and add a new Xcode command line tool target." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:34 +msgid "Name it something so you know not to compile with this target (e.g. ``GodotXcodeIndex``)." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:35 +msgid "Goto the newly created target's **Build Settings** tab and look for **Header Search Paths**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:36 +msgid "Set **Header Search Paths** to the absolute path to Godot's source folder." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:37 +msgid "Make it recursive by adding two asterisks (``**``) to the end of the path, e.g. ``/Users/me/repos/godot-source/**``." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:40 +msgid "Add the Godot source to the project:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:42 +msgid "Drag and drop Godot source into the project file browser." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:43 +msgid "Uncheck **Create external build system project**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:47 +msgid "Click **Next**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:48 +msgid "Select **Create groups**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:52 +msgid "Check *only* your command line indexing target in the **Add to targets** section." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:54 +msgid "Click finish. Xcode will now index the files. This may take a few minutes." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:55 +msgid "Once Xcode is done indexing, you should have jump-to-definition, autocompletion, and full syntax highlighting." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:59 +msgid "Scheme setup" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:61 +msgid "To enable debugging support, edit the external build target's build scheme:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:63 +msgid "Open the scheme editor of the external build target." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:64 +msgid "Expand the **Build** menu." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:65 +msgid "Goto **Post Actions**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:66 +msgid "Add a new script run action, select your project in **Provide build settings from** as this allows you to use the``${PROJECT_DIR}`` variable." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:71 +msgid "Write a script that gives the binary a name that Xcode will recognize, such as: ``ln -f ${PROJECT_DIR}/godot/bin/godot.osx.tools.64 ${PROJECT_DIR}/godot/bin/godot``" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:73 +msgid "Build the external build target." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:75 +msgid "Edit the external build target's Run scheme:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:77 +msgid "Open the scheme editor again." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:78 +msgid "Click **Run**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:82 +msgid "Set the **Executable** to the file you linked in your post-build action script." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:83 +msgid "Check **Debug executable** if it isn't checked already." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:84 +msgid "You can go to **Arguments** tab and specify the full path to a ``project.godot`` file to debug the editor instead of the project manager. Alternatively, use ``--path`` to point to a project *folder* which will be run directly (instead of opening the editor)." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:89 +msgid "Test the Run scheme:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:91 +msgid "Set a breakpoint in ``platform/osx/godot_main_osx.mm``." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:92 +msgid "If all goes well, it should break at the specified breakpoint." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:94 +msgid "If you run into any issues, ask for help in one of `Godot's community channels `__." +msgstr "" + diff --git a/sphinx/templates/development/cpp/core_types.pot b/sphinx/templates/development/cpp/core_types.pot index 8d61bcd9cc..e9d0a641c4 100644 --- a/sphinx/templates/development/cpp/core_types.pot +++ b/sphinx/templates/development/cpp/core_types.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/custom_audiostreams.pot b/sphinx/templates/development/cpp/custom_audiostreams.pot index 32305696ae..be9bb60787 100644 --- a/sphinx/templates/development/cpp/custom_audiostreams.pot +++ b/sphinx/templates/development/cpp/custom_audiostreams.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/custom_godot_servers.pot b/sphinx/templates/development/cpp/custom_godot_servers.pot index abf14534b5..eae00b8b9b 100644 --- a/sphinx/templates/development/cpp/custom_godot_servers.pot +++ b/sphinx/templates/development/cpp/custom_godot_servers.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/custom_modules_in_cpp.pot b/sphinx/templates/development/cpp/custom_modules_in_cpp.pot index 33fcdc0c9b..982d35b2d2 100644 --- a/sphinx/templates/development/cpp/custom_modules_in_cpp.pot +++ b/sphinx/templates/development/cpp/custom_modules_in_cpp.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -209,102 +209,126 @@ msgid "Make a new directory in the root of the module. The directory name can be msgstr "" #: ../../docs/development/cpp/custom_modules_in_cpp.rst:376 -msgid "Append the following code snippet to ``config.py``:" +msgid "Now, we need to edit ``config.py``, add the following snippet:" msgstr "" #: ../../docs/development/cpp/custom_modules_in_cpp.rst:388 -msgid "The ``get_doc_classes()`` method is necessary for the build system to know which documentation classes of the module must be merged, since the module may contain several classes. Replace ``ClassName`` with the name of the class you want to write documentation for. If you need docs for more than one class, append those as well." +msgid "The ``get_doc_path()`` function is used by the build system to determine the location of the docs. In this case, they will be located in the ``modules/summator/doc_classes`` directory. If you don't define this, the doc path for your module will fall back to the main ``doc/classes`` directory." msgstr "" #: ../../docs/development/cpp/custom_modules_in_cpp.rst:394 -msgid "The ``get_doc_path()`` method is used by the build system to determine the location of the docs. In our case, they will be located in the ``doc_classes`` directory." +msgid "The ``get_doc_classes()`` method is necessary for the build system to know which registered classes belong to the module. You need to list all of your classes here. The classes that you don't list will end up in the main ``doc/classes`` directory." msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:398 -msgid "Run command:" +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:401 +msgid "You can use git to check if you have missed some of your classes by checking the untracked files with ``git status``. For example::" msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:404 -msgid "This will dump the engine API reference to the given ```` in XML format. Notice that you'll need to configure your ``PATH`` to locate Godot's executable, and make sure that you have write access rights. If not, you might encounter an error similar to the following:" -msgstr "" - -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:414 -msgid "Get generated doc file from ``godot/doc/classes/ClassName.xml``" -msgstr "" - -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:416 -msgid "Copy this file to ``doc_classes``, optionally edit it, then compile the engine." +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:406 +msgid "Example output::" msgstr "" #: ../../docs/development/cpp/custom_modules_in_cpp.rst:418 -msgid "The build system will fetch the documentation files from the ``doc_classes`` directory and merge them with the base types. Once the compilation process is finished, the docs will become accessible within the engine's built-in documentation system." +msgid "Now we can generate the documentation:" msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:422 -msgid "In order to keep documentation up-to-date, all you'll have to do is simply modify one of the ``ClassName.xml`` files and recompile the engine from now on." +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:420 +msgid "We can do this via running Godot's doctool i.e. ``godot --doctool ``, which will dump the engine API reference to the given ```` in XML format." msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:428 -msgid "Adding custom editor icons" +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:423 +msgid "In our case we'll point it to the root of the cloned repository. You can point it to an another folder, and just copy over the files that you need." msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:430 -msgid "Similarly to how you can write self-contained documentation within a module, you can also create your own custom icons for classes to appear in the editor." +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:426 +msgid "Run command:" msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:433 -msgid "For the actual process of creating editor icons to be integrated within the engine, please refer to :ref:`doc_editor_icons` first." +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:432 +msgid "Now if you go to the ``godot/modules/summator/doc_classes`` folder, you will see that it contains a ``Summator.xml`` file, or any other classes, that you referenced in your ``get_doc_classes`` function." msgstr "" #: ../../docs/development/cpp/custom_modules_in_cpp.rst:436 -msgid "Once you've created your icon(s), proceed with the following steps:" +msgid "Edit the file(s) following :ref:`doc_updating_the_class_reference` and recompile the engine." msgstr "" #: ../../docs/development/cpp/custom_modules_in_cpp.rst:438 -msgid "Make a new directory in the root of the module named ``icons``. This is the default path for the engine to look for module's editor icons." +msgid "Once the compilation process is finished, the docs will become accessible within the engine's built-in documentation system." msgstr "" #: ../../docs/development/cpp/custom_modules_in_cpp.rst:441 -msgid "Move your newly created ``svg`` icons (optimized or not) into that folder." +msgid "In order to keep documentation up-to-date, all you'll have to do is simply modify one of the XML files and recompile the engine from now on." msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:443 -msgid "Recompile the engine and run the editor. Now the icon(s) will appear in editor's interface where appropriate." +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:444 +msgid "If you change your module's API, you can also re-extract the docs, they will contain the things that you previously added. Of course if you point it to your godot folder, make sure you don't lose work by extracting older docs from an older engine build on top of the newer ones." msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:446 -msgid "If you'd like to store your icons somewhere else within your module, add the following code snippet to ``config.py`` to override the default path:" +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:449 +msgid "Note that if you don't have write access rights to your supplied ````, you might encounter an error similar to the following:" msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:455 -msgid "Summing up" -msgstr "" - -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:457 -msgid "Remember to:" -msgstr "" - -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:459 -msgid "use ``GDCLASS`` macro for inheritance, so Godot can wrap it" -msgstr "" - -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:460 -msgid "use ``_bind_methods`` to bind your functions to scripting, and to allow them to work as callbacks for signals." +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:461 +msgid "Adding custom editor icons" msgstr "" #: ../../docs/development/cpp/custom_modules_in_cpp.rst:463 -msgid "But this is not all, depending what you do, you will be greeted with some (hopefully positive) surprises." +msgid "Similarly to how you can write self-contained documentation within a module, you can also create your own custom icons for classes to appear in the editor." msgstr "" #: ../../docs/development/cpp/custom_modules_in_cpp.rst:466 -msgid "If you inherit from :ref:`class_Node` (or any derived node type, such as Sprite), your new class will appear in the editor, in the inheritance tree in the \"Add Node\" dialog." +msgid "For the actual process of creating editor icons to be integrated within the engine, please refer to :ref:`doc_editor_icons` first." msgstr "" #: ../../docs/development/cpp/custom_modules_in_cpp.rst:469 +msgid "Once you've created your icon(s), proceed with the following steps:" +msgstr "" + +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:471 +msgid "Make a new directory in the root of the module named ``icons``. This is the default path for the engine to look for module's editor icons." +msgstr "" + +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:474 +msgid "Move your newly created ``svg`` icons (optimized or not) into that folder." +msgstr "" + +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:476 +msgid "Recompile the engine and run the editor. Now the icon(s) will appear in editor's interface where appropriate." +msgstr "" + +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:479 +msgid "If you'd like to store your icons somewhere else within your module, add the following code snippet to ``config.py`` to override the default path:" +msgstr "" + +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:488 +msgid "Summing up" +msgstr "" + +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:490 +msgid "Remember to:" +msgstr "" + +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:492 +msgid "use ``GDCLASS`` macro for inheritance, so Godot can wrap it" +msgstr "" + +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:493 +msgid "use ``_bind_methods`` to bind your functions to scripting, and to allow them to work as callbacks for signals." +msgstr "" + +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:496 +msgid "But this is not all, depending what you do, you will be greeted with some (hopefully positive) surprises." +msgstr "" + +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:499 +msgid "If you inherit from :ref:`class_Node` (or any derived node type, such as Sprite), your new class will appear in the editor, in the inheritance tree in the \"Add Node\" dialog." +msgstr "" + +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:502 msgid "If you inherit from :ref:`class_Resource`, it will appear in the resource list, and all the exposed properties can be serialized when saved/loaded." msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:472 +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:505 msgid "By this same logic, you can extend the Editor and almost any area of the engine." msgstr "" diff --git a/sphinx/templates/development/cpp/custom_resource_format_loaders.pot b/sphinx/templates/development/cpp/custom_resource_format_loaders.pot index f18441c6f6..753cd13a4e 100644 --- a/sphinx/templates/development/cpp/custom_resource_format_loaders.pot +++ b/sphinx/templates/development/cpp/custom_resource_format_loaders.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/index.pot b/sphinx/templates/development/cpp/index.pot index 23d569e6e6..1f43206da7 100644 --- a/sphinx/templates/development/cpp/index.pot +++ b/sphinx/templates/development/cpp/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/inheritance_class_tree.pot b/sphinx/templates/development/cpp/inheritance_class_tree.pot index d8a35bc3ea..218a5f24d1 100644 --- a/sphinx/templates/development/cpp/inheritance_class_tree.pot +++ b/sphinx/templates/development/cpp/inheritance_class_tree.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/introduction_to_godot_development.pot b/sphinx/templates/development/cpp/introduction_to_godot_development.pot index 1bd350fb78..2d2c42b8c7 100644 --- a/sphinx/templates/development/cpp/introduction_to_godot_development.pot +++ b/sphinx/templates/development/cpp/introduction_to_godot_development.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/cpp/object_class.pot b/sphinx/templates/development/cpp/object_class.pot index 24a27399d7..1905205442 100644 --- a/sphinx/templates/development/cpp/object_class.pot +++ b/sphinx/templates/development/cpp/object_class.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -34,10 +34,10 @@ msgstr "" #: ../../docs/development/cpp/object_class.rst:31 #: ../../docs/development/cpp/object_class.rst:89 -#: ../../docs/development/cpp/object_class.rst:252 -#: ../../docs/development/cpp/object_class.rst:268 -#: ../../docs/development/cpp/object_class.rst:289 -#: ../../docs/development/cpp/object_class.rst:308 +#: ../../docs/development/cpp/object_class.rst:254 +#: ../../docs/development/cpp/object_class.rst:270 +#: ../../docs/development/cpp/object_class.rst:291 +#: ../../docs/development/cpp/object_class.rst:310 msgid "References:" msgstr "" @@ -161,115 +161,115 @@ msgstr "" msgid "This creates the property using the setter and the getter." msgstr "" -#: ../../docs/development/cpp/object_class.rst:173 +#: ../../docs/development/cpp/object_class.rst:175 msgid "Binding properties using ``_set``/``_get``/``_get_property_list``" msgstr "" -#: ../../docs/development/cpp/object_class.rst:175 +#: ../../docs/development/cpp/object_class.rst:177 msgid "An additional method of creating properties exists when more flexibility is desired (i.e. adding or removing properties on context)." msgstr "" -#: ../../docs/development/cpp/object_class.rst:178 +#: ../../docs/development/cpp/object_class.rst:180 msgid "The following functions can be overridden in an Object derived class, they are NOT virtual, DO NOT make them virtual, they are called for every override and the previous ones are not invalidated (multilevel call)." msgstr "" -#: ../../docs/development/cpp/object_class.rst:190 +#: ../../docs/development/cpp/object_class.rst:192 msgid "This is also a little less efficient since ``p_property`` must be compared against the desired names in serial order." msgstr "" -#: ../../docs/development/cpp/object_class.rst:194 +#: ../../docs/development/cpp/object_class.rst:196 msgid "Dynamic casting" msgstr "" -#: ../../docs/development/cpp/object_class.rst:196 +#: ../../docs/development/cpp/object_class.rst:198 msgid "Godot provides dynamic casting between Object-derived classes, for example:" msgstr "" -#: ../../docs/development/cpp/object_class.rst:206 +#: ../../docs/development/cpp/object_class.rst:208 msgid "If cast fails, NULL is returned. This system uses RTTI, but it also works fine (although a bit slower) when RTTI is disabled. This is useful on platforms where a small binary size is ideal, such as HTML5 or consoles (with low memory footprint)." msgstr "" -#: ../../docs/development/cpp/object_class.rst:212 +#: ../../docs/development/cpp/object_class.rst:214 msgid "Signals" msgstr "" -#: ../../docs/development/cpp/object_class.rst:214 +#: ../../docs/development/cpp/object_class.rst:216 msgid "Objects can have a set of signals defined (similar to Delegates in other languages). Connecting to them is rather easy:" msgstr "" -#: ../../docs/development/cpp/object_class.rst:223 +#: ../../docs/development/cpp/object_class.rst:225 msgid "The method ``_node_entered_tree`` must be registered to the class using ``ClassDB::register_method`` (explained before)." msgstr "" -#: ../../docs/development/cpp/object_class.rst:226 +#: ../../docs/development/cpp/object_class.rst:228 msgid "Adding signals to a class is done in ``_bind_methods``, using the ``ADD_SIGNAL`` macro, for example:" msgstr "" -#: ../../docs/development/cpp/object_class.rst:234 +#: ../../docs/development/cpp/object_class.rst:236 msgid "References" msgstr "" -#: ../../docs/development/cpp/object_class.rst:236 +#: ../../docs/development/cpp/object_class.rst:238 msgid ":ref:`Reference ` inherits from Object and holds a reference count. It is the base for reference counted object types. Declaring them must be done using Ref<> template. For example:" msgstr "" -#: ../../docs/development/cpp/object_class.rst:248 +#: ../../docs/development/cpp/object_class.rst:250 msgid "``myref`` is reference counted. It will be freed when no more Ref<> templates point to it." msgstr "" -#: ../../docs/development/cpp/object_class.rst:254 +#: ../../docs/development/cpp/object_class.rst:256 msgid "`core/reference.h `__" msgstr "" -#: ../../docs/development/cpp/object_class.rst:257 +#: ../../docs/development/cpp/object_class.rst:259 msgid "Resources:" msgstr "" -#: ../../docs/development/cpp/object_class.rst:259 +#: ../../docs/development/cpp/object_class.rst:261 msgid ":ref:`Resource ` inherits from Reference, so all resources are reference counted. Resources can optionally contain a path, which reference a file on disk. This can be set with ``resource.set_path(path)``. This is normally done by the resource loader though. No two different resources can have the same path, attempt to do so will result in an error." msgstr "" -#: ../../docs/development/cpp/object_class.rst:265 +#: ../../docs/development/cpp/object_class.rst:267 msgid "Resources without a path are fine too." msgstr "" -#: ../../docs/development/cpp/object_class.rst:270 +#: ../../docs/development/cpp/object_class.rst:272 msgid "`core/resource.h `__" msgstr "" -#: ../../docs/development/cpp/object_class.rst:273 +#: ../../docs/development/cpp/object_class.rst:275 msgid "Resource loading" msgstr "" -#: ../../docs/development/cpp/object_class.rst:275 +#: ../../docs/development/cpp/object_class.rst:277 msgid "Resources can be loaded with the ResourceLoader API, like this:" msgstr "" -#: ../../docs/development/cpp/object_class.rst:281 +#: ../../docs/development/cpp/object_class.rst:283 msgid "If a reference to that resource has been loaded previously and is in memory, the resource loader will return that reference. This means that there can be only one resource loaded from a file referenced on disk at the same time." msgstr "" -#: ../../docs/development/cpp/object_class.rst:286 +#: ../../docs/development/cpp/object_class.rst:288 msgid "resourceinteractiveloader (TODO)" msgstr "" -#: ../../docs/development/cpp/object_class.rst:291 +#: ../../docs/development/cpp/object_class.rst:293 msgid "`core/io/resource_loader.h `__" msgstr "" -#: ../../docs/development/cpp/object_class.rst:294 +#: ../../docs/development/cpp/object_class.rst:296 msgid "Resource saving" msgstr "" -#: ../../docs/development/cpp/object_class.rst:296 +#: ../../docs/development/cpp/object_class.rst:298 msgid "Saving a resource can be done with the resource saver API:" msgstr "" -#: ../../docs/development/cpp/object_class.rst:302 +#: ../../docs/development/cpp/object_class.rst:304 msgid "Instance will be saved. Sub resources that have a path to a file will be saved as a reference to that resource. Sub resources without a path will be bundled with the saved resource and assigned sub-IDs, like \"res://someresource.res::1\". This also helps to cache them when loaded." msgstr "" -#: ../../docs/development/cpp/object_class.rst:310 +#: ../../docs/development/cpp/object_class.rst:312 msgid "`core/io/resource_saver.h `__" msgstr "" diff --git a/sphinx/templates/development/cpp/variant_class.pot b/sphinx/templates/development/cpp/variant_class.pot index b86e7d57fb..b2c435eaab 100644 --- a/sphinx/templates/development/cpp/variant_class.pot +++ b/sphinx/templates/development/cpp/variant_class.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/editor/creating_icons.pot b/sphinx/templates/development/editor/creating_icons.pot index e621e5d8c4..5d3cd7fb75 100644 --- a/sphinx/templates/development/editor/creating_icons.pot +++ b/sphinx/templates/development/editor/creating_icons.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,7 +21,7 @@ msgid "Editor icons" msgstr "" #: ../../docs/development/editor/creating_icons.rst:6 -msgid "When a new class is created and exposed to scripting, the editor's interface will display it with a default icon representing the base class it inherits from. Yet in most cases it is recommended to create icons for new classes to improve the user experience." +msgid "When a new class is created and exposed to scripting, the editor's interface will display it with a default icon representing the base class it inherits from. In most cases, it's still recommended to create icons for new classes to improve the user experience." msgstr "" #: ../../docs/development/editor/creating_icons.rst:12 @@ -53,62 +53,74 @@ msgid "Once you're satisfied with the icon's design, save the icon in the cloned msgstr "" #: ../../docs/development/editor/creating_icons.rst:37 -msgid "Icon optimization" +msgid "Color conversion for light editor themes" msgstr "" #: ../../docs/development/editor/creating_icons.rst:39 +msgid "If the user has configured their editor to use a light theme, Godot will convert the icon's colors based on a `set of predefined color mappings `__. This is to ensure the icon always displays with a sufficient contrast rate. Try to restrict your icon's color palette to colors found in the list above. Otherwise, your icon may become difficult to read on a light background." +msgstr "" + +#: ../../docs/development/editor/creating_icons.rst:47 +msgid "Icon optimization" +msgstr "" + +#: ../../docs/development/editor/creating_icons.rst:49 msgid "Because the editor renders SVGs once at load time, they need to be small in size so they can be efficiently parsed. Editor icons must be first optimized before being added to the engine, to do so:" msgstr "" -#: ../../docs/development/editor/creating_icons.rst:43 -msgid "Add them to the ``engine/icons/svg`` folder." +#: ../../docs/development/editor/creating_icons.rst:53 +msgid "Install `svgcleaner `__ by downloading a binary from its `Releases tab `__ and placing it into a location in your ``PATH`` environment variable." msgstr "" -#: ../../docs/development/editor/creating_icons.rst:45 -msgid "Run the ``optimize.py`` script. You must have the ``scour`` package installed:" +#: ../../docs/development/editor/creating_icons.rst:58 +msgid "Run the command below, replacing ``svg_source.svg`` with the path to your SVG file (which can be a relative or absolute path):" msgstr "" -#: ../../docs/development/editor/creating_icons.rst:52 -msgid "The optimized icons will be generated in the ``engine/icons/optimized`` folder." +#: ../../docs/development/editor/creating_icons.rst:65 +msgid "The ``--multipass`` switch improves compression, so make sure to include it. The optimized icon will be saved to ``svg_optimized.svg``. You can also change the destination parameter to any relative or absolute path you'd like." msgstr "" -#: ../../docs/development/editor/creating_icons.rst:55 +#: ../../docs/development/editor/creating_icons.rst:71 +msgid "While this optimization step won't impact the icon's quality noticeably, it will still remove editor-only information such as guides. Therefore, it's recommended to keep the source SVG around if you need to make further changes." +msgstr "" + +#: ../../docs/development/editor/creating_icons.rst:77 msgid "Integrating and sharing the icons" msgstr "" -#: ../../docs/development/editor/creating_icons.rst:57 +#: ../../docs/development/editor/creating_icons.rst:79 msgid "If you're contributing to the engine itself, you should make a pull request to add optimized icons to ``editor/icons`` in the main repository. Recompile the engine to make it pick up new icons for classes." msgstr "" -#: ../../docs/development/editor/creating_icons.rst:61 +#: ../../docs/development/editor/creating_icons.rst:83 msgid "It's also possible to create custom icons within a module. If you're creating your own module and don't plan to integrate it with Godot, you don't need to make a separate pull request for your icons to be available within the editor as they can be self-contained." msgstr "" -#: ../../docs/development/editor/creating_icons.rst:66 +#: ../../docs/development/editor/creating_icons.rst:88 msgid "For specific instructions on how to create module icons, refer to :ref:`Creating custom module icons`." msgstr "" -#: ../../docs/development/editor/creating_icons.rst:70 +#: ../../docs/development/editor/creating_icons.rst:92 msgid "Troubleshooting" msgstr "" -#: ../../docs/development/editor/creating_icons.rst:72 -msgid "If icons don't appear in the editor make sure that:" +#: ../../docs/development/editor/creating_icons.rst:94 +msgid "If icons don't appear in the editor, make sure that:" msgstr "" -#: ../../docs/development/editor/creating_icons.rst:74 +#: ../../docs/development/editor/creating_icons.rst:96 msgid "Each icon's filename matches the naming requirement as described previously." msgstr "" -#: ../../docs/development/editor/creating_icons.rst:76 +#: ../../docs/development/editor/creating_icons.rst:98 msgid "``modules/svg`` is enabled (it should be enabled by default). Without it, icons won't appear in the editor at all." msgstr "" -#: ../../docs/development/editor/creating_icons.rst:80 +#: ../../docs/development/editor/creating_icons.rst:102 msgid "References" msgstr "" -#: ../../docs/development/editor/creating_icons.rst:82 +#: ../../docs/development/editor/creating_icons.rst:104 msgid "`editor/icons `__" msgstr "" diff --git a/sphinx/templates/development/editor/index.pot b/sphinx/templates/development/editor/index.pot index 3aaa350ad6..48c5ceec17 100644 --- a/sphinx/templates/development/editor/index.pot +++ b/sphinx/templates/development/editor/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/editor/introduction.pot b/sphinx/templates/development/editor/introduction.pot deleted file mode 100644 index 3cb987570e..0000000000 --- a/sphinx/templates/development/editor/introduction.pot +++ /dev/null @@ -1,26 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2014-2020, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0) -# This file is distributed under the same license as the Godot Engine package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Godot Engine latest\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../docs/development/editor/introduction.rst:4 -msgid "Introduction" -msgstr "" - -#: ../../docs/development/editor/introduction.rst:6 -msgid "As the engine is constantly evolving and new features are being added, it is important to familiarize yourself with the editor and tools development in C++. Without the editor, some of the engine's internal functionality would become unaccessible and make the development not intuitive." -msgstr "" - diff --git a/sphinx/templates/development/file_formats/gdscript_grammar.pot b/sphinx/templates/development/file_formats/gdscript_grammar.pot new file mode 100644 index 0000000000..0e656d4288 --- /dev/null +++ b/sphinx/templates/development/file_formats/gdscript_grammar.pot @@ -0,0 +1,30 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2020, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0) +# This file is distributed under the same license as the Godot Engine package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine latest\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/development/file_formats/gdscript_grammar.rst:4 +msgid "GDScript grammar" +msgstr "" + +#: ../../docs/development/file_formats/gdscript_grammar.rst:6 +msgid "This is the formal grammar of GDScript written in `EBNF `_, for reference purposes." +msgstr "" + +#: ../../docs/development/file_formats/gdscript_grammar.rst:9 +msgid "This grammar is descriptive only, derived from the reference documentation and current implementation. The GDScript parser is **not** generated from a grammar definition. Inconsistencies here likely mean an error in this grammar, not a bug in GDScript." +msgstr "" + diff --git a/sphinx/templates/development/file_formats/index.pot b/sphinx/templates/development/file_formats/index.pot index 17457bf69b..c9932b9724 100644 --- a/sphinx/templates/development/file_formats/index.pot +++ b/sphinx/templates/development/file_formats/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/development/file_formats/tscn.pot b/sphinx/templates/development/file_formats/tscn.pot index e1773d577b..1767e0a11a 100644 --- a/sphinx/templates/development/file_formats/tscn.pot +++ b/sphinx/templates/development/file_formats/tscn.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/editor/command_line_tutorial.pot b/sphinx/templates/getting_started/editor/command_line_tutorial.pot index ada52c6cc9..d3d4893311 100644 --- a/sphinx/templates/getting_started/editor/command_line_tutorial.pot +++ b/sphinx/templates/getting_started/editor/command_line_tutorial.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/editor/default_key_mapping.pot b/sphinx/templates/getting_started/editor/default_key_mapping.pot index 9674a796d5..e33e99f3db 100644 --- a/sphinx/templates/getting_started/editor/default_key_mapping.pot +++ b/sphinx/templates/getting_started/editor/default_key_mapping.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/editor/external_editor.pot b/sphinx/templates/getting_started/editor/external_editor.pot index e1348d7a51..a002484012 100644 --- a/sphinx/templates/getting_started/editor/external_editor.pot +++ b/sphinx/templates/getting_started/editor/external_editor.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/editor/index.pot b/sphinx/templates/getting_started/editor/index.pot index e113a8edee..399bfb9269 100644 --- a/sphinx/templates/getting_started/editor/index.pot +++ b/sphinx/templates/getting_started/editor/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/editor/unity_to_godot.pot b/sphinx/templates/getting_started/editor/unity_to_godot.pot index cbb2c75c0d..bddd57c205 100644 --- a/sphinx/templates/getting_started/editor/unity_to_godot.pot +++ b/sphinx/templates/getting_started/editor/unity_to_godot.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/scripting/c_sharp/c_sharp_basics.pot b/sphinx/templates/getting_started/scripting/c_sharp/c_sharp_basics.pot index d11d397195..38a018c3bc 100644 --- a/sphinx/templates/getting_started/scripting/c_sharp/c_sharp_basics.pot +++ b/sphinx/templates/getting_started/scripting/c_sharp/c_sharp_basics.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/scripting/c_sharp/c_sharp_differences.pot b/sphinx/templates/getting_started/scripting/c_sharp/c_sharp_differences.pot index 0bcfe58e2e..1404b0c4e4 100644 --- a/sphinx/templates/getting_started/scripting/c_sharp/c_sharp_differences.pot +++ b/sphinx/templates/getting_started/scripting/c_sharp/c_sharp_differences.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/scripting/c_sharp/c_sharp_features.pot b/sphinx/templates/getting_started/scripting/c_sharp/c_sharp_features.pot index adc2c3a228..d3997a5a45 100644 --- a/sphinx/templates/getting_started/scripting/c_sharp/c_sharp_features.pot +++ b/sphinx/templates/getting_started/scripting/c_sharp/c_sharp_features.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/scripting/c_sharp/c_sharp_style_guide.pot b/sphinx/templates/getting_started/scripting/c_sharp/c_sharp_style_guide.pot index 46dcc1e692..ff0bdd99ae 100644 --- a/sphinx/templates/getting_started/scripting/c_sharp/c_sharp_style_guide.pot +++ b/sphinx/templates/getting_started/scripting/c_sharp/c_sharp_style_guide.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/scripting/c_sharp/index.pot b/sphinx/templates/getting_started/scripting/c_sharp/index.pot index 7784a096e8..ad5562a071 100644 --- a/sphinx/templates/getting_started/scripting/c_sharp/index.pot +++ b/sphinx/templates/getting_started/scripting/c_sharp/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/scripting/creating_script_templates.pot b/sphinx/templates/getting_started/scripting/creating_script_templates.pot index fb6726ff2a..65c6020279 100644 --- a/sphinx/templates/getting_started/scripting/creating_script_templates.pot +++ b/sphinx/templates/getting_started/scripting/creating_script_templates.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/scripting/cross_language_scripting.pot b/sphinx/templates/getting_started/scripting/cross_language_scripting.pot index 6054516cc4..6c7677d2b7 100644 --- a/sphinx/templates/getting_started/scripting/cross_language_scripting.pot +++ b/sphinx/templates/getting_started/scripting/cross_language_scripting.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/scripting/gdscript/gdscript_advanced.pot b/sphinx/templates/getting_started/scripting/gdscript/gdscript_advanced.pot index a44cc298e7..b6ae52b943 100644 --- a/sphinx/templates/getting_started/scripting/gdscript/gdscript_advanced.pot +++ b/sphinx/templates/getting_started/scripting/gdscript/gdscript_advanced.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/scripting/gdscript/gdscript_basics.pot b/sphinx/templates/getting_started/scripting/gdscript/gdscript_basics.pot index 96de649a70..ce395f3550 100644 --- a/sphinx/templates/getting_started/scripting/gdscript/gdscript_basics.pot +++ b/sphinx/templates/getting_started/scripting/gdscript/gdscript_basics.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -103,7 +103,7 @@ msgid "else" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:149 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:785 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:801 msgid "for" msgstr "" @@ -112,7 +112,7 @@ msgid "See for_." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:151 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:774 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:790 msgid "while" msgstr "" @@ -121,7 +121,7 @@ msgid "See while_." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:153 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:820 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:836 msgid "match" msgstr "" @@ -551,967 +551,979 @@ msgid "Ternary if/else" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:274 -msgid "``=`` ``+=`` ``-=`` ``*=`` ``/=`` ``%=`` ``&=`` ``|=``" +msgid "``as``" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:274 +msgid "Type casting" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:276 +msgid "``=`` ``+=`` ``-=`` ``*=`` ``/=`` ``%=`` ``&=`` ``|=``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:276 msgid "Assignment (lowest priority)" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:278 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:280 msgid "Literals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:281 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:283 msgid "**Literal**" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:281 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:283 msgid "**Type**" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:283 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:285 msgid "``45``" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:283 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:285 msgid "Base 10 integer" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:285 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:287 msgid "``0x8F51``" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:285 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:287 msgid "Base 16 (hexadecimal) integer" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:287 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:289 msgid "``0b101010``" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:287 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:289 msgid "Base 2 (binary) integer" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:289 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:291 msgid "``3.14``, ``58.1e-10``" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:289 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:291 msgid "Floating-point number (real)" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:291 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:293 msgid "``\"Hello\"``, ``\"Hi\"``" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:291 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:293 msgid "Strings" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:293 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:295 msgid "``\"\"\"Hello\"\"\"``" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:293 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:295 msgid "Multiline string" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:295 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:297 msgid "``@\"Node/Label\"``" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:295 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:297 msgid ":ref:`class_NodePath` or StringName" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:297 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:299 msgid "``$NodePath``" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:297 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:299 msgid "Shorthand for ``get_node(\"NodePath\")``" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:301 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:303 msgid "Comments" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:303 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:305 msgid "Anything from a ``#`` to the end of the line is ignored and is considered a comment." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:313 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:315 msgid "Built-in types" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:315 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:317 msgid "Built-in types are stack-allocated. They are passed as values. This means a copy is created on each assignment or when passing them as arguments to functions. The only exceptions are ``Array``\\ s and ``Dictionaries``, which are passed by reference so they are shared. (Pooled arrays such as ``PoolByteArray`` are still passed as values.)" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:322 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:324 msgid "Basic built-in types" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:324 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:326 msgid "A variable in GDScript can be assigned to several built-in types." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:327 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:329 msgid "null" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:329 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:331 msgid "``null`` is an empty data type that contains no information and can not be assigned any other value." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:333 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:335 msgid ":ref:`bool `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:335 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:337 msgid "Short for \"boolean\", it can only contain ``true`` or ``false``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:338 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:340 msgid ":ref:`int `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:340 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:342 msgid "Short for \"integer\", it stores whole numbers (positive and negative). It is stored as a 64-bit value, equivalent to \"int64_t\" in C++." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:344 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:346 msgid ":ref:`float `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:346 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:348 msgid "Stores real numbers, including decimals, using floating-point values. It is stored as a 64-bit value, equivalent to \"double\" in C++. Note: Currently, data structures such as Vector2, Vector3, and PoolRealArray store 32-bit single-precision \"float\" values." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:352 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:354 msgid ":ref:`String `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:354 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:356 msgid "A sequence of characters in `Unicode format `_. Strings can contain `standard C escape sequences `_. GDScript also supports :ref:`doc_gdscript_printf`." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:360 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:362 msgid "Vector built-in types" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:363 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:365 msgid ":ref:`Vector2 `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:365 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:367 msgid "2D vector type containing ``x`` and ``y`` fields. Can also be accessed as an array." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:369 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:371 msgid ":ref:`Rect2 `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:371 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:373 msgid "2D Rectangle type containing two vectors fields: ``position`` and ``size``. Also contains an ``end`` field which is ``position + size``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:375 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:377 msgid ":ref:`Vector3 `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:377 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:379 msgid "3D vector type containing ``x``, ``y`` and ``z`` fields. This can also be accessed as an array." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:381 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:383 msgid ":ref:`Transform2D `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:383 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:385 msgid "3×2 matrix used for 2D transforms." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:386 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:388 msgid ":ref:`Plane `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:388 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:390 msgid "3D Plane type in normalized form that contains a ``normal`` vector field and a ``d`` scalar distance." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:392 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:394 msgid ":ref:`Quat `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:394 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:396 msgid "Quaternion is a datatype used for representing a 3D rotation. It's useful for interpolating rotations." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:398 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:400 msgid ":ref:`AABB `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:400 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:402 msgid "Axis-aligned bounding box (or 3D box) contains 2 vectors fields: ``position`` and ``size``. Also contains an ``end`` field which is ``position + size``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:405 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:407 msgid ":ref:`Basis `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:407 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:409 msgid "3x3 matrix used for 3D rotation and scale. It contains 3 vector fields (``x``, ``y`` and ``z``) and can also be accessed as an array of 3D vectors." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:412 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:414 msgid ":ref:`Transform `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:414 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:416 msgid "3D Transform contains a Basis field ``basis`` and a Vector3 field ``origin``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:418 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:420 msgid "Engine built-in types" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:421 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:423 msgid ":ref:`Color `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:423 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:425 msgid "Color data type contains ``r``, ``g``, ``b``, and ``a`` fields. It can also be accessed as ``h``, ``s``, and ``v`` for hue/saturation/value." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:427 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:429 msgid ":ref:`NodePath `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:429 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:431 msgid "Compiled path to a node used mainly in the scene system. It can be easily assigned to, and from, a String." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:433 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:435 msgid ":ref:`RID `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:435 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:437 msgid "Resource ID (RID). Servers use generic RIDs to reference opaque data." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:438 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:440 msgid ":ref:`Object `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:440 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:442 msgid "Base class for anything that is not a built-in type." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:443 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:445 msgid "Container built-in types" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:446 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:448 msgid ":ref:`Array `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:448 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:450 msgid "Generic sequence of arbitrary object types, including other arrays or dictionaries (see below). The array can resize dynamically. Arrays are indexed starting from index ``0``. Negative indices count from the end." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:462 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:464 msgid "GDScript arrays are allocated linearly in memory for speed. Large arrays (more than tens of thousands of elements) may however cause memory fragmentation. If this is a concern, special types of arrays are available. These only accept a single data type. They avoid memory fragmentation and use less memory, but are atomic and tend to run slower than generic arrays. They are therefore only recommended to use for large data sets:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:469 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:471 msgid ":ref:`PoolByteArray `: An array of bytes (integers from 0 to 255)." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:470 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:472 msgid ":ref:`PoolIntArray `: An array of integers." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:471 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:473 msgid ":ref:`PoolRealArray `: An array of floats." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:472 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:474 msgid ":ref:`PoolStringArray `: An array of strings." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:473 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:475 msgid ":ref:`PoolVector2Array `: An array of :ref:`Vector2 ` objects." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:474 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:476 msgid ":ref:`PoolVector3Array `: An array of :ref:`Vector3 ` objects." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:475 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:477 msgid ":ref:`PoolColorArray `: An array of :ref:`Color ` objects." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:480 msgid ":ref:`Dictionary `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:480 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:482 msgid "Associative container which contains values referenced by unique keys." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:493 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:495 msgid "Lua-style table syntax is also supported. Lua-style uses ``=`` instead of ``:`` and doesn't use quotes to mark string keys (making for slightly less to write). However, keys written in this form can't start with a digit (like any GDScript identifier)." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:507 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:509 msgid "To add a key to an existing dictionary, access it like an existing key and assign to it::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:516 -msgid "Data" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:519 -msgid "Variables" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:521 -msgid "Variables can exist as class members or local to functions. They are created with the ``var`` keyword and may, optionally, be assigned a value upon initialization." +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:525 +msgid "The bracket syntax can be used to access properties of any :ref:`class_Object`, not just Dictionaries. Keep in mind it will cause a script error when attempting to index a non-existing property. To avoid this, use the :ref:`Object.get() ` and :ref:`Object.set() ` methods instead." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:532 +msgid "Data" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:535 +msgid "Variables" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:537 +msgid "Variables can exist as class members or local to functions. They are created with the ``var`` keyword and may, optionally, be assigned a value upon initialization." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 msgid "Variables can optionally have a type specification. When a type is specified, the variable will be forced to have always that same type, and trying to assign an incompatible value will raise an error." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:536 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:552 msgid "Types are specified in the variable declaration using a ``:`` (colon) symbol after the variable name, followed by the type." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:544 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:560 msgid "If the variable is initialized within the declaration, the type can be inferred, so it's possible to omit the type name::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:550 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:566 msgid "Type inference is only possible if the assigned value has a defined type, otherwise it will raise an error." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:553 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:569 msgid "Valid types are:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:555 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:571 msgid "Built-in types (Array, Vector2, int, String, etc.)." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:556 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:572 msgid "Engine classes (Node, Resource, Reference, etc.)." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:557 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:573 msgid "Constant names if they contain a script resource (``MyScript`` if you declared ``const MyScript = preload(\"res://my_script.gd\")``)." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:558 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:574 msgid "Other classes in the same script, respecting scope (``InnerClass.NestedClass`` if you declared ``class NestedClass`` inside the ``class InnerClass`` in the same scope)." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:559 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:575 msgid "Script classes declared with the ``class_name`` keyword." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:562 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:578 msgid "Casting" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:564 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:580 msgid "Values assigned to typed variables must have a compatible type. If it's needed to coerce a value to be of a certain type, in particular for object types, you can use the casting operator ``as``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:584 msgid "Casting between object types results in the same object if the value is of the same type or a subtype of the cast type." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:576 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:592 msgid "If the value is not a subtype, the casting operation will result in a ``null`` value." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:583 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:599 msgid "For built-in types, they will be forcibly converted if possible, otherwise the engine will raise an error." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:592 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:608 msgid "Casting is also useful to have better type-safe variables when interacting with the scene tree::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:602 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:618 msgid "Constants" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:604 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:620 msgid "Constants are similar to variables, but must be constants or constant expressions and must be assigned on initialization." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:618 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:634 msgid "Although the type of constants is inferred from the assigned value, it's also possible to add explicit type specification::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:624 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:640 msgid "Assigning a value of an incompatible type will raise an error." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:627 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:643 msgid "Enums" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:629 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:645 msgid "Enums are basically a shorthand for constants, and are pretty useful if you want to assign consecutive integers to some constant." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:632 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:648 msgid "If you pass a name to the enum, it will put all the keys inside a constant dictionary of that name." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:635 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:651 msgid "In Godot 3.1 and later, keys in a named enum are not registered as global constants. They should be accessed prefixed by the enum's name (``Name.KEY``); see an example below." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:655 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:671 msgid "Functions" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:657 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:673 msgid "Functions always belong to a `class `_. The scope priority for variable look-up is: local → class member → global. The ``self`` variable is always available and is provided as an option for accessing class members, but is not always required (and should *not* be sent as the function's first argument, unlike Python)." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:686 msgid "A function can ``return`` at any point. The default return value is ``null``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:672 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:688 msgid "Functions can also have type specification for the arguments and for the return value. Types for arguments can be added in a similar way to variables::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:678 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:694 msgid "If a function argument has a default value, it's possible to infer the type::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:683 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:699 msgid "The return type of the function can be specified after the arguments list using the arrow token (``->``)::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:689 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:705 msgid "Functions that have a return type **must** return a proper value. Setting the type as ``void`` means the function doesn't return anything. Void functions can return early with the ``return`` keyword, but they can't return any value." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:698 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:714 msgid "Non-void functions must **always** return a value, so if your code has branching statements (such as an ``if``/``else`` construct), all the possible paths must have a return. E.g., if you have a ``return`` inside an ``if`` block but not after it, the editor will raise an error because if the block is not executed, the function won't have a valid value to return." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:706 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:722 msgid "Referencing functions" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:708 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:724 msgid "Contrary to Python, functions are *not* first-class objects in GDScript. This means they cannot be stored in variables, passed as an argument to another function or be returned from other functions. This is for performance reasons." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:712 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:728 msgid "To reference a function by name at run-time, (e.g. to store it in a variable, or pass it to another function as an argument) one must use the ``call`` or ``funcref`` helpers::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:726 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:742 msgid "Static functions" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:728 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:744 msgid "A function can be declared static. When a function is static, it has no access to the instance member variables or ``self``. This is mainly useful to make libraries of helper functions::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:737 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:753 msgid "Statements and control flow" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:739 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:755 msgid "Statements are standard and can be assignments, function calls, control flow structures, etc (see below). ``;`` as a statement separator is entirely optional." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:744 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:760 msgid "if/else/elif" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:746 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:762 msgid "Simple conditions are created by using the ``if``/``else``/``elif`` syntax. Parenthesis around conditions are allowed, but not required. Given the nature of the tab-based indentation, ``elif`` can be used instead of ``else``/``if`` to maintain a level of indentation." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:760 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:776 msgid "Short statements can be written on the same line as the condition::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:767 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:783 msgid "Sometimes, you might want to assign a different initial value based on a boolean expression. In this case, ternary-if expressions come in handy::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:776 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:792 msgid "Simple loops are created by using ``while`` syntax. Loops can be broken using ``break`` or continued using ``continue``:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:787 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:803 msgid "To iterate through a range, such as an array or table, a *for* loop is used. When iterating over an array, the current array element is stored in the loop variable. When iterating over a dictionary, the *index* is stored in the loop variable." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:822 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:838 msgid "A ``match`` statement is used to branch execution of a program. It's the equivalent of the ``switch`` statement found in many other languages, but offers some additional features." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:825 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:841 msgid "Basic syntax::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:836 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:852 msgid "**Crash-course for people who are familiar with switch statements**:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:838 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:854 msgid "Replace ``switch`` with ``match``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:839 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:855 msgid "Remove ``case``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:840 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:856 msgid "Remove any ``break``\\ s. If you don't want to ``break`` by default, you can use ``continue`` for a fallthrough." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:841 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:857 msgid "Change ``default`` to a single underscore." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:844 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:860 msgid "**Control flow**:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:846 -msgid "The patterns are matched from top to bottom. If a pattern matches, the corresponding block will be executed. After that, the execution continues below the ``match`` statement. If you want to have a fallthrough, you can use ``continue`` to stop execution in the current block and check the ones below it." +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:862 +msgid "The patterns are matched from top to bottom. If a pattern matches, the first corresponding block will be executed. After that, the execution continues below the ``match`` statement. If you want to have a fallthrough, you can use ``continue`` to stop execution in the current block and check for an additional match in the patterns below it." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:850 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:866 msgid "There are 6 pattern types:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:862 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:878 msgid "Constant pattern" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:853 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:869 msgid "Constant primitives, like numbers and strings::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:874 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:890 msgid "Variable pattern" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:865 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:881 msgid "Matches the contents of a variable/enum::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:888 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:904 msgid "Wildcard pattern" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:877 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:893 msgid "This pattern matches everything. It's written as a single underscore." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:879 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:895 msgid "It can be used as the equivalent of the ``default`` in a ``switch`` statement in other languages::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:901 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:917 msgid "Binding pattern" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:891 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:907 msgid "A binding pattern introduces a new variable. Like the wildcard pattern, it matches everything - and also gives that value a name. It's especially useful in array and dictionary patterns::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:922 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:938 msgid "Array pattern" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:904 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:920 msgid "Matches an array. Every single element of the array pattern is a pattern itself, so you can nest them." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:906 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:922 msgid "The length of the array is tested first, it has to be the same size as the pattern, otherwise the pattern doesn't match." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:908 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:924 msgid "**Open-ended array**: An array can be bigger than the pattern by making the last subpattern ``..``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:910 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:926 msgid "Every subpattern has to be comma-separated." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:949 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:965 msgid "Dictionary pattern" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:925 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:941 msgid "Works in the same way as the array pattern. Every key has to be a constant pattern." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:927 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:943 msgid "The size of the dictionary is tested first, it has to be the same size as the pattern, otherwise the pattern doesn't match." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:929 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:945 msgid "**Open-ended dictionary**: A dictionary can be bigger than the pattern by making the last subpattern ``..``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:931 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:947 msgid "Every subpattern has to be comma separated." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:933 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:949 msgid "If you don't specify a value, then only the existence of the key is checked." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:935 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:951 msgid "A value pattern is separated from the key pattern with a ``:``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:962 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:978 msgid "Multiple patterns" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:952 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:968 msgid "You can also specify multiple patterns separated by a comma. These patterns aren't allowed to have any bindings in them." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:965 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:981 msgid "Classes" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:967 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:983 msgid "By default, all script files are unnamed classes. In this case, you can only reference them using the file's path, using either a relative or an absolute path. For example, if you name a script file ``character.gd``::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:980 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:996 msgid "Instead, you can give your class a name to register it as a new type in Godot's editor. For that, you use the ``class_name`` keyword. You can add an optional comma followed by a path to an image, to use it as an icon. Your class will then appear with its new icon in the editor::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:992 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1008 msgid "Here's a class file example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1014 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1030 msgid "Godot's class syntax is compact: it can only contain member variables or functions. You can use static functions, but not static member variables. In the same way, the engine initializes variables every time you create an instance, and this includes arrays and dictionaries. This is in the spirit of thread safety, since scripts can be initialized in separate threads without the user knowing." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1022 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1038 msgid "Inheritance" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1024 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1040 msgid "A class (stored as a file) can inherit from:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1026 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1042 msgid "A global class." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1027 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1043 msgid "Another class file." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1028 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1044 msgid "An inner class inside another class file." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1030 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1046 msgid "Multiple inheritance is not allowed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1032 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1048 msgid "Inheritance uses the ``extends`` keyword::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1044 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1060 msgid "To check if a given instance inherits from a given class, the ``is`` keyword can be used::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1056 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1072 msgid "To call a function in a *parent class* (i.e. one ``extend``-ed in your current class), prepend ``.`` to the function name::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1061 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1077 msgid "This is especially useful because functions in extending classes replace functions with the same name in their parent classes. If you still want to call them, you can prefix them with ``.`` (like the ``super`` keyword in other languages)::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1069 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1085 msgid "Default functions like ``_init``, and most notifications such as ``_enter_tree``, ``_exit_tree``, ``_process``, ``_physics_process``, etc. are called in all parent classes automatically. There is no need to call them explicitly when overloading them." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1076 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1092 msgid "Class Constructor" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1078 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1094 msgid "The class constructor, called on class instantiation, is named ``_init``. As mentioned earlier, the constructors of parent classes are called automatically when inheriting a class. So, there is usually no need to call ``._init()`` explicitly." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1083 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1099 msgid "Unlike the call of a regular function, like in the above example with ``.some_func``, if the constructor from the inherited class takes arguments, they are passed like this::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1090 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1106 msgid "This is better explained through examples. Consider this scenario::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1113 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1129 msgid "There are a few things to keep in mind here:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1115 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1131 msgid "If the inherited class (``State.gd``) defines a ``_init`` constructor that takes arguments (``e`` in this case), then the inheriting class (``Idle.gd``) *must* define ``_init`` as well and pass appropriate parameters to ``_init`` from ``State.gd``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1118 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1134 msgid "``Idle.gd`` can have a different number of arguments than the parent class ``State.gd``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1119 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1135 msgid "In the example above, ``e`` passed to the ``State.gd`` constructor is the same ``e`` passed in to ``Idle.gd``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1121 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1137 msgid "If ``Idle.gd``'s ``_init`` constructor takes 0 arguments, it still needs to pass some value to the ``State.gd`` parent class, even if it does nothing. This brings us to the fact that you can pass literals in the base constructor as well, not just variables. eg.::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1131 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1147 msgid "Inner classes" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1133 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1149 msgid "A class file can contain inner classes. Inner classes are defined using the ``class`` keyword. They are instanced using the ``ClassName.new()`` function." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1158 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1174 msgid "Classes as resources" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1160 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1176 msgid "Classes stored as files are treated as :ref:`resources `. They must be loaded from disk to access them in other classes. This is done using either the ``load`` or ``preload`` functions (see below). Instancing of a loaded class resource is done by calling the ``new`` function on the class object::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1177 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1193 msgid "Exports" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1181 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1197 msgid "Documentation about exports has been moved to :ref:`doc_gdscript_exports`." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1184 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1200 msgid "Setters/getters" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1186 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1202 msgid "It is often useful to know when a class' member variable changes for whatever reason. It may also be desired to encapsulate its access in some way." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1189 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1205 msgid "For this, GDScript provides a *setter/getter* syntax using the ``setget`` keyword. It is used directly after a variable definition:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1196 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1212 msgid "Whenever the value of ``variable`` is modified by an *external* source (i.e. not from local usage in the class), the *setter* function (``setterfunc`` above) will be called. This happens *before* the value is changed. The *setter* must decide what to do with the new value. Vice versa, when ``variable`` is accessed, the *getter* function (``getterfunc`` above) must ``return`` the desired value. Below is an example::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1212 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1228 msgid "Either of the *setter* or *getter* functions can be omitted::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1219 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1235 msgid "Setters and getters are useful when :ref:`exporting variables ` to the editor in tool scripts or plugins, for validating input." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1222 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1238 msgid "As said, *local* access will *not* trigger the setter and getter. Here is an illustration of this:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1239 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1255 msgid "Tool mode" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1241 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1257 msgid "By default, scripts don't run inside the editor and only the exported properties can be changed. In some cases, it is desired that they do run inside the editor (as long as they don't execute game code or manually avoid doing so). For this, the ``tool`` keyword exists and must be placed at the top of the file::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1255 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1271 msgid "See :ref:`doc_running_code_in_the_editor` for more information." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1257 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1273 msgid "Be cautious when freeing nodes with ``queue_free()`` or ``free()`` in a tool script (especially the script's owner itself). As tool scripts run their code in the editor, misusing them may lead to crashing the editor." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1263 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1279 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1265 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1281 msgid "If a class inherits from :ref:`class_Reference`, then instances will be freed when no longer in use. No garbage collector exists, just reference counting. By default, all classes that don't define inheritance extend **Reference**. If this is not desired, then a class must inherit :ref:`class_Object` manually and must call instance.free(). To avoid reference cycles that can't be freed, a ``weakref`` function is provided for creating weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1273 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1289 msgid "Alternatively, when not using references, the ``is_instance_valid(instance)`` can be used to check if an object has been freed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1280 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1296 msgid "Signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1282 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1298 msgid "Signals are a tool to emit messages from an object that other objects can react to. To create custom signals for a class, use the ``signal`` keyword." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1295 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1311 msgid "Signals are a `Callback `_ mechanism. They also fill the role of Observers, a common programming pattern. For more information, read the `Observer tutorial `_ in the Game Programming Patterns ebook." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1302 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1318 msgid "You can connect these signals to methods the same way you connect built-in signals of nodes like :ref:`class_Button` or :ref:`class_RigidBody`." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1305 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1321 msgid "In the example below, we connect the ``health_depleted`` signal from a ``Character`` node to a ``Game`` node. When the ``Character`` node emits the signal, the game node's ``_on_Character_health_depleted`` is called::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1319 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1335 msgid "You can emit as many arguments as you want along with a signal." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1321 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1337 msgid "Here is an example where this is useful. Let's say we want a life bar on screen to react to health changes with an animation, but we want to keep the user interface separate from the player in our scene tree." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1325 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1341 msgid "In our ``Character.gd`` script, we define a ``health_changed`` signal and emit it with :ref:`Object.emit_signal() `, and from a ``Game`` node higher up our scene tree, we connect it to the ``Lifebar`` using the :ref:`Object.connect() ` method::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1366 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1382 msgid "To use signals, your class has to extend the ``Object`` class or any type extending it like ``Node``, ``KinematicBody``, ``Control``..." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1369 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1385 msgid "In the ``Game`` node, we get both the ``Character`` and ``Lifebar`` nodes, then connect the character, that emits the signal, to the receiver, the ``Lifebar`` node in this case." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1383 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1399 msgid "This allows the ``Lifebar`` to react to health changes without coupling it to the ``Character`` node." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1386 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1402 msgid "You can write optional argument names in parentheses after the signal's definition::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1392 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1408 msgid "These arguments show up in the editor's node dock, and Godot can use them to generate callback functions for you. However, you can still emit any number of arguments when you emit signals; it's up to you to emit the correct values." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1398 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1414 msgid "GDScript can bind an array of values to connections between a signal and a method. When the signal is emitted, the callback method receives the bound values. These bound arguments are unique to each connection, and the values will stay the same." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1403 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1419 msgid "You can use this array of values to add extra constant information to the connection if the emitted signal itself doesn't give you access to all the data that you need." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1407 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1423 msgid "Building on the example above, let's say we want to display a log of the damage taken by each character on the screen, like ``Player1 took 22 damage.``. The ``health_changed`` signal doesn't give us the name of the character that took damage. So when we connect the signal to the in-game console, we can add the character's name in the binds array argument::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1421 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1437 msgid "Our ``BattleLog`` node receives each element in the binds array as an extra argument::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1434 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1450 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1436 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1452 msgid "GDScript offers support for `coroutines `_ via the :ref:`yield` built-in function. Calling ``yield()`` will immediately return from the current function, with the current frozen state of the same function as the return value. Calling ``resume()`` on this resulting object will continue execution and return whatever the function returns. Once resumed, the state object becomes invalid. Here is an example::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1473 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1494 msgid "Will print::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1463 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1479 msgid "It is also possible to pass values between ``yield()`` and ``resume()``, for example::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1484 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1500 msgid "Remember to save the new function state, when using multiple ``yield``\\s::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1499 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1515 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1501 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1517 msgid "The real strength of using ``yield`` is when combined with signals. ``yield`` can accept two arguments, an object and a signal. When the signal is received, execution will recommence. Here are some examples::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1530 msgid "Coroutines themselves use the ``completed`` signal when they transition into an invalid state, for example::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1526 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1542 msgid "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1528 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1544 msgid "You can also get the signal's argument once it's emitted by an object:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1535 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1551 msgid "If you're unsure whether a function may yield or not, or whether it may yield multiple times, you can yield to the ``completed`` signal conditionally:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1557 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 msgid "This ensures that the function returns whatever it was supposed to return irregardless of whether coroutines were used internally. Note that using ``while`` would be redundant here as the ``completed`` signal is only emitted when the function didn't yield anymore." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1563 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1579 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1565 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1581 msgid "When using nodes, it's common to desire to keep references to parts of the scene in a variable. As scenes are only warranted to be configured when entering the active scene tree, the sub-nodes can only be obtained when a call to ``Node._ready()`` is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1578 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1594 msgid "This can get a little cumbersome, especially when nodes and external references pile up. For this, GDScript has the ``onready`` keyword, that defers initialization of a member variable until ``_ready()`` is called. It can replace the above code with a single line::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1586 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1602 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1588 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1604 msgid "The ``assert`` keyword can be used to check conditions in debug builds. These assertions are ignored in non-debug builds. This means that the expression passed as argument won't be evaluated in a project exported in release mode. Due to this, assertions must **not** contain expressions that have side effects. Otherwise, the behavior of the script would vary depending on whether the project is run in a debug build." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1600 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1616 msgid "When running a project from the editor, the project will be paused if an assertion error occurs." msgstr "" diff --git a/sphinx/templates/getting_started/scripting/gdscript/gdscript_exports.pot b/sphinx/templates/getting_started/scripting/gdscript/gdscript_exports.pot index 1089b23011..6146aecce6 100644 --- a/sphinx/templates/getting_started/scripting/gdscript/gdscript_exports.pot +++ b/sphinx/templates/getting_started/scripting/gdscript/gdscript_exports.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -44,47 +44,103 @@ msgstr "" msgid "Examples" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:129 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:136 msgid "It must be noted that even if the script is not being run while in the editor, the exported properties are still editable. This can be used in conjunction with a :ref:`script in \"tool\" mode `." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:134 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:141 msgid "Exporting bit flags" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:136 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:143 msgid "Integers used as bit flags can store multiple ``true``/``false`` (boolean) values in one property. By using the export hint ``int, FLAGS``, they can be set from the editor::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:143 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:150 msgid "Restricting the flags to a certain number of named flags is also possible. The syntax is similar to the enumeration syntax::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:149 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:156 msgid "In this example, ``Fire`` has value 1, ``Water`` has value 2, ``Earth`` has value 4 and ``Wind`` corresponds to value 8. Usually, constants should be defined accordingly (e.g. ``const ELEMENT_WIND = 8`` and so on)." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:154 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:161 msgid "Using bit flags requires some understanding of bitwise operations. If in doubt, boolean variables should be exported instead." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:158 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:165 msgid "Exporting arrays" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:160 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:167 msgid "Exporting arrays works, but with an important caveat: while regular arrays are created local to every class instance, exported arrays are *shared* between all instances. This means that editing them in one instance will cause them to change in all other instances. Exported arrays can have initializers, but they must be constant expressions." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:166 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:173 msgid "If the exported array specifies a type which inherits from Resource, the array values can be set in the inspector by dragging and dropping multiple files from the FileSystem dock at once." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:206 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:213 msgid "Setting exported variables from a tool script" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:208 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:215 msgid "When changing an exported variable's value from a script in :ref:`doc_gdscript_tool_mode`, the value in the inspector won't be updated automatically. To update it, call :ref:`property_list_changed_notify() ` after setting the exported variable's value." msgstr "" +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:222 +msgid "Advanced exports" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:224 +msgid "Not every type of export can be provided on the level of the language itself to avoid unnecessary design complexity. The following describes some more or less common exporting features which can be implemented with a low-level API." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:228 +msgid "Before reading further, you should get familiar with the way properties are handled and how they can be customized with :ref:`_set() `, :ref:`_get() `, and :ref:`_get_property_list() ` methods as described in :ref:`doc_accessing_data_or_logic_from_object`." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:235 +msgid "For binding properties using the above methods in C++, see :ref:`doc_binding_properties_using_set_get_property_list`." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:238 +msgid "The script must operate in the ``tool`` mode so the above methods can work from within the editor." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:242 +msgid "Adding script categories" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:244 +msgid "For better visual distinguishing of properties, a special script category can be embedded into the inspector to act as a separator. ``Script Variables`` is one example of a built-in category." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:261 +msgid "``name`` is the name of a category to be added to the inspector;" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:263 +msgid "``PROPERTY_USAGE_CATEGORY`` indicates that the property should be treated as a script category specifically, so the type ``TYPE_NIL`` can be ignored as it won't be actually used for the scripting logic, yet it must be defined anyway." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:268 +msgid "Grouping properties" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:270 +msgid "A list of properties with similar names can be grouped." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:284 +msgid "``name`` is the name of a group which is going to be displayed as collapsible list of properties;" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:287 +msgid "every successive property added after the group property will be collapsed and shortened as determined by the prefix defined via the ``hint_string`` key. For instance, ``rotate_speed`` is going to be shortened to ``speed`` in this case." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:291 +msgid "``PROPERTY_USAGE_GROUP`` indicates that the property should be treated as a script group specifically, so the type ``TYPE_NIL`` can be ignored as it won't be actually used for the scripting logic, yet it must be defined anyway." +msgstr "" + diff --git a/sphinx/templates/getting_started/scripting/gdscript/gdscript_format_string.pot b/sphinx/templates/getting_started/scripting/gdscript/gdscript_format_string.pot index ec0f90a5cb..6458101bb5 100644 --- a/sphinx/templates/getting_started/scripting/gdscript/gdscript_format_string.pot +++ b/sphinx/templates/getting_started/scripting/gdscript/gdscript_format_string.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/scripting/gdscript/gdscript_styleguide.pot b/sphinx/templates/getting_started/scripting/gdscript/gdscript_styleguide.pot index f25b3ec1ae..d1c9ffcd81 100644 --- a/sphinx/templates/getting_started/scripting/gdscript/gdscript_styleguide.pot +++ b/sphinx/templates/getting_started/scripting/gdscript/gdscript_styleguide.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -86,7 +86,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:327 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:347 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:373 -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:675 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:695 msgid "**Good**:" msgstr "" @@ -100,7 +100,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:334 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:354 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:383 -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:683 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:703 msgid "**Bad**:" msgstr "" @@ -229,186 +229,198 @@ msgid "These naming conventions follow the Godot Engine style. Breaking these wi msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:431 -msgid "Classes and nodes" +msgid "File names" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:433 -msgid "Use PascalCase for class and node names:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:439 -msgid "Also use PascalCase when loading a class into a constant or a variable:" +msgid "Use snake_case for file names. For named classes, convert the PascalCase class name to snake_case::" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:446 -msgid "Functions and variables" +msgid "This is consistent with how C++ files are named in Godot's source code. This also avoids case sensitivity issues that can crop up when exporting a project from Windows to other platforms." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:448 -msgid "Use snake\\_case to name functions and variables:" +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:451 +msgid "Classes and nodes" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:455 -msgid "Prepend a single underscore (\\_) to virtual methods functions the user must override, private functions, and private variables:" +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:453 +msgid "Use PascalCase for class and node names:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:464 -msgid "Signals" +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:459 +msgid "Also use PascalCase when loading a class into a constant or a variable:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:466 +msgid "Functions and variables" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:468 +msgid "Use snake\\_case to name functions and variables:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:475 +msgid "Prepend a single underscore (\\_) to virtual methods functions the user must override, private functions, and private variables:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:484 +msgid "Signals" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:486 msgid "Use the past tense to name signals:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:474 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:494 msgid "Constants and enums" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:476 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:496 msgid "Write constants with CONSTANT\\_CASE, that is to say in all caps with an underscore (\\_) to separate words:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:483 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:503 msgid "Use PascalCase for enum *names* and CONSTANT\\_CASE for their members, as they are constants:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:497 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:517 msgid "Code order" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:499 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:519 msgid "This first section focuses on code order. For formatting, see :ref:`formatting`. For naming conventions, see :ref:`naming_conventions`." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:502 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:522 msgid "We suggest to organize GDScript code this way:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:525 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:545 msgid "We optimized the order to make it easy to read the code from top to bottom, to help developers reading the code for the first time understand how it works, and to avoid errors linked to the order of variable declarations." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:529 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:549 msgid "This code order follows four rules of thumb:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:551 msgid "Properties and signals come first, followed by methods." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:532 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:552 msgid "Public comes before private." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:533 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:553 msgid "Virtual callbacks come before the class's interface." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:554 msgid "The object's construction and initialization functions, ``_init`` and ``_ready``, come before functions that modify the object at runtime." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:539 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:559 msgid "Class declaration" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:541 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:561 msgid "If the code is meant to run in the editor, place the ``tool`` keyword on the first line of the script." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:544 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:564 msgid "Follow with the `class_name` if necessary. You can turn a GDScript file into a global type in your project using this feature. For more information, see :ref:`doc_gdscript`." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:548 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:568 msgid "Then, add the `extends` keyword if the class extends a built-in type." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:550 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:570 msgid "Following that, you should have the class's optional docstring as comments. You can use that to explain the role of your class to your teammates, how it works, and how other developers should use it, for example." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:562 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:582 msgid "Signals and properties" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:564 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:584 msgid "Write signal declarations, followed by properties, that is to say, member variables, after the docstring." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:567 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:587 msgid "Enums should come after signals, as you can use them as export hints for other properties." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:570 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:590 msgid "Then, write constants, exported variables, public, private, and onready variables, in that order." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:593 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:613 msgid "The GDScript compiler evaluates onready variables right before the ``_ready`` callback. You can use that to cache node dependencies, that is to say, to get child nodes in the scene that your class relies on. This is what the example above shows." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:599 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:619 msgid "Member variables" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:601 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:621 msgid "Don't declare member variables if they are only used locally in a method, as it makes the code more difficult to follow. Instead, declare them as local variables in the method's body." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:606 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:626 msgid "Local variables" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:608 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:628 msgid "Declare local variables as close as possible to their first use. This makes it easier to follow the code, without having to scroll too much to find where the variable was declared." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:613 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:633 msgid "Methods and static functions" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:615 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:635 msgid "After the class's properties come the methods." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:617 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:637 msgid "Start with the ``_init()`` callback method, that the engine will call upon creating the object in memory. Follow with the ``_ready()`` callback, that Godot calls when it adds a node to the scene tree." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:621 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:641 msgid "These function should come first because they show how the object is initialized." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:624 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:644 msgid "Other built-in virtual callbacks, like ``_unhandled_input()`` and ``_physics_process``, should come next. These control the object's main loop and interactions with the game engine." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:628 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:648 msgid "The rest of the class's interface, public and private methods, come after that, in that order." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:665 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:685 msgid "Static typing" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:667 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:687 msgid "Since Godot 3.1, GDScript supports :ref:`optional static typing`." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:690 msgid "Type hints" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:672 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:692 msgid "Place the colon right after the variable's name, without a space, and let the GDScript compiler infer the variable's type when possible." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:691 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:711 msgid "When you let the compiler infer the type hint, write the colon and equal signs together: ``:=``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:697 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:717 msgid "Add a space on either sides of the return type arrow when defining functions." msgstr "" diff --git a/sphinx/templates/getting_started/scripting/gdscript/index.pot b/sphinx/templates/getting_started/scripting/gdscript/index.pot index de34ab4892..b0301ae77f 100644 --- a/sphinx/templates/getting_started/scripting/gdscript/index.pot +++ b/sphinx/templates/getting_started/scripting/gdscript/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/scripting/gdscript/static_typing.pot b/sphinx/templates/getting_started/scripting/gdscript/static_typing.pot index 45eac6ccb8..25ea2a8a14 100644 --- a/sphinx/templates/getting_started/scripting/gdscript/static_typing.pot +++ b/sphinx/templates/getting_started/scripting/gdscript/static_typing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -61,7 +61,7 @@ msgid "Another significant advantage of typed GDScript is the new **warning syst msgstr "" #: ../../docs/getting_started/scripting/gdscript/static_typing.rst:55 -msgid "Static types also give you better code completion options. Below, you can see the difference between a dynamic and a static typed completion options for a class called ``PlayerController``." +msgid "Static types also give you better code completion options. Below, you can see the difference between a dynamic and a static typed completion options for a class called ``PlayerController``." msgstr "" #: ../../docs/getting_started/scripting/gdscript/static_typing.rst:59 @@ -217,7 +217,7 @@ msgid "And the same callback, with type hints:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/static_typing.rst:302 -msgid "You're free to replace, e.g. the ``CollisionObject2D``, with your own type, to cast parameters automatically:" +msgid "You're free to replace, e.g. the ``CollisionObject2D``, with your own type, to cast parameters automatically:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/static_typing.rst:313 @@ -228,75 +228,39 @@ msgstr "" msgid "Warning system" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:321 -msgid "The warning system complements typed GDScript. It's here to help you avoid mistakes that are hard to spot during development, and that may lead to runtime errors." +#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:323 +msgid "Documentation about the GDScript warning system has been moved to :ref:`doc_gdscript_warning_system`." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:325 -msgid "You can configure warnings in the Project Settings under a new section called ``GDScript``:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:331 -msgid "warning system project settings" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:333 -msgid "You can find a list of warnings for the active GDScript file in the script editor's status bar. The example below has 3 warnings:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:339 -msgid "warning system example" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:341 -msgid "To ignore specific warnings in one file, insert a special comment of the form ``# warning-ignore:warning-id``, or click on the ignore link to the right of the warning's description. Godot will add a comment above the corresponding line and the code won't trigger the corresponding warning anymore:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:350 -msgid "warning system ignore example" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:352 -msgid "You can also choose to ignore not just one but all warnings of a certain type in this file with ``# warning-ignore-all:warning-id``. To ignore all warnings of all types in a file add the comment ``# warnings-disable`` to it." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:356 -msgid "Warnings won't prevent the game from running, but you can turn them into errors if you'd like. This way your game won't compile unless you fix all warnings. Head to the ``GDScript`` section of the Project Settings to turn on this option. Here's the same file as the previous example with warnings as errors turned on:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:365 -msgid "warnings as errors" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:368 +#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:327 msgid "Cases where you can't specify types" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:370 +#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:329 msgid "To wrap up this introduction, let's cover a few cases where you can't use type hints. All the examples below **will trigger errors**." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:373 +#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:332 msgid "You can't use Enums as types:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:380 +#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:339 msgid "You can't specify the type of individual members in an array. This will give you an error:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:387 +#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:346 msgid "You can't force the assignment of types in a ``for`` loop, as each element the ``for`` keyword loops over already has a different type. So you **cannot** write:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:397 +#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:356 msgid "Two scripts can't depend on each other in a cyclic fashion:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:420 +#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:379 msgid "Summary" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:422 +#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:381 msgid "Typed GDScript is a powerful tool. Available as of version 3.1 of Godot, it helps you write more structured code, avoid common errors, and create scalable systems. In the future, static types will also bring you a nice performance boost thanks to upcoming compiler optimizations." msgstr "" diff --git a/sphinx/templates/getting_started/scripting/gdscript/warning_system.pot b/sphinx/templates/getting_started/scripting/gdscript/warning_system.pot new file mode 100644 index 0000000000..19ad0e226a --- /dev/null +++ b/sphinx/templates/getting_started/scripting/gdscript/warning_system.pot @@ -0,0 +1,62 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2020, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0) +# This file is distributed under the same license as the Godot Engine package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine latest\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:4 +msgid "GDScript warning system" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:6 +msgid "The GDScript warning system complements :ref:`static typing ` (but it can work without static typing too). It's here to help you avoid mistakes that are hard to spot during development, and that may lead to runtime errors." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:11 +msgid "You can configure warnings in the Project Settings under the section called **Gdscript**:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:17 +msgid "Warning system project settings" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:19 +msgid "You can find a list of warnings for the active GDScript file in the script editor's status bar. The example below has 3 warnings:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:25 +msgid "Warning system example" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:27 +msgid "To ignore specific warnings in one file, insert a special comment of the form ``# warning-ignore:warning-id``, or click on the ignore link to the right of the warning's description. Godot will add a comment above the corresponding line and the code won't trigger the corresponding warning anymore:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:36 +msgid "Warning system ignore example" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:38 +msgid "You can also choose to ignore not just one but all warnings of a certain type in this file with ``# warning-ignore-all:warning-id``. To ignore all warnings of all types in a file add the comment ``# warnings-disable`` to it." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:42 +msgid "Warnings won't prevent the game from running, but you can turn them into errors if you'd like. This way your game won't compile unless you fix all warnings. Head to the ``GDScript`` section of the Project Settings to turn on this option. Here's the same file as the previous example with warnings as errors turned on:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:51 +msgid "Warnings as errors" +msgstr "" + diff --git a/sphinx/templates/getting_started/scripting/index.pot b/sphinx/templates/getting_started/scripting/index.pot index ceccd349e3..4acf444bc8 100644 --- a/sphinx/templates/getting_started/scripting/index.pot +++ b/sphinx/templates/getting_started/scripting/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/scripting/visual_script/custom_visualscript_nodes.pot b/sphinx/templates/getting_started/scripting/visual_script/custom_visualscript_nodes.pot index e75f478d3d..0392ea5986 100644 --- a/sphinx/templates/getting_started/scripting/visual_script/custom_visualscript_nodes.pot +++ b/sphinx/templates/getting_started/scripting/visual_script/custom_visualscript_nodes.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/scripting/visual_script/getting_started.pot b/sphinx/templates/getting_started/scripting/visual_script/getting_started.pot index 274557c150..8cb184a879 100644 --- a/sphinx/templates/getting_started/scripting/visual_script/getting_started.pot +++ b/sphinx/templates/getting_started/scripting/visual_script/getting_started.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/scripting/visual_script/index.pot b/sphinx/templates/getting_started/scripting/visual_script/index.pot index fa570111c3..c6803fc5a4 100644 --- a/sphinx/templates/getting_started/scripting/visual_script/index.pot +++ b/sphinx/templates/getting_started/scripting/visual_script/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/scripting/visual_script/nodes_purposes.pot b/sphinx/templates/getting_started/scripting/visual_script/nodes_purposes.pot index e58815dd22..a84d6dc667 100644 --- a/sphinx/templates/getting_started/scripting/visual_script/nodes_purposes.pot +++ b/sphinx/templates/getting_started/scripting/visual_script/nodes_purposes.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -521,7 +521,7 @@ msgid "Access local variables or properties:" msgstr "" #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:498 -msgid "Use most of the existing built-in functions that are available to GDScript, such as sin(),cos(),print(), as well as constructors, such as Vector3(x,y,z),Rect2(..), etc.:" +msgid "Use most of the existing built-in functions that are available to GDScript, such as ``sin()``, ``cos()``, ``print()``, as well as constructors, such as ``Vector3(x, y, z)``, ``Rect2(...)``, etc.:" msgstr "" #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:503 diff --git a/sphinx/templates/getting_started/scripting/visual_script/what_is_visual_scripting.pot b/sphinx/templates/getting_started/scripting/visual_script/what_is_visual_scripting.pot index eaec6b3a6d..f0a3187e41 100644 --- a/sphinx/templates/getting_started/scripting/visual_script/what_is_visual_scripting.pot +++ b/sphinx/templates/getting_started/scripting/visual_script/what_is_visual_scripting.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/animations.pot b/sphinx/templates/getting_started/step_by_step/animations.pot index 067216217a..d947d6abb4 100644 --- a/sphinx/templates/getting_started/step_by_step/animations.pot +++ b/sphinx/templates/getting_started/step_by_step/animations.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/exporting.pot b/sphinx/templates/getting_started/step_by_step/exporting.pot index dfa46dd954..d03ad289ab 100644 --- a/sphinx/templates/getting_started/step_by_step/exporting.pot +++ b/sphinx/templates/getting_started/step_by_step/exporting.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -64,187 +64,187 @@ msgstr "" msgid "Here is the full script for the player, with comments noting what we've changed:" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:246 +#: ../../docs/getting_started/step_by_step/exporting.rst:240 msgid "Setting a main scene" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:248 +#: ../../docs/getting_started/step_by_step/exporting.rst:242 msgid "The main scene is the one that your game will start in. In *Project -> Project Settings -> Application -> Run*, set *Main Scene* to \"Main.tscn\" by clicking the folder icon and selecting it." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:253 +#: ../../docs/getting_started/step_by_step/exporting.rst:247 msgid "Export templates" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:255 +#: ../../docs/getting_started/step_by_step/exporting.rst:249 msgid "In order to export, you need to download the *export templates* from the http://godotengine.org/download. These templates are optimized versions of the engine without the editor pre-compiled for each platform . You can also download them in Godot by clicking on *Editor -> Manage Export Templates*:" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:262 +#: ../../docs/getting_started/step_by_step/exporting.rst:256 msgid "In the window that appears, you can click \"Download\" to get the template version that matches your version of Godot." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:267 +#: ../../docs/getting_started/step_by_step/exporting.rst:261 msgid "If you upgrade Godot, you must download templates that match the new version or your exported projects may not work correctly." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:271 +#: ../../docs/getting_started/step_by_step/exporting.rst:265 msgid "Export presets" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:273 +#: ../../docs/getting_started/step_by_step/exporting.rst:267 msgid "Next, you can configure the export settings by clicking on *Project -> Export*." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:275 +#: ../../docs/getting_started/step_by_step/exporting.rst:269 msgid "Create a new export preset by clicking \"Add...\" and selecting a platform. You can make as many presets as you like with different settings." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:280 +#: ../../docs/getting_started/step_by_step/exporting.rst:274 msgid "At the bottom of the window are two buttons. \"Export PCK/ZIP\" only creates a packed version of your project's data. This doesn't include an executable so the project can't be run on its own." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:284 +#: ../../docs/getting_started/step_by_step/exporting.rst:278 msgid "The second button, \"Export Project\", creates a complete executable version of your game, such as an `.apk` for Android or an `.exe` for Windows." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:287 +#: ../../docs/getting_started/step_by_step/exporting.rst:281 msgid "In the \"Resources\" and \"Features\" tabs, you can customize how the game is exported for each platform. We can leave those settings alone for now." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:291 +#: ../../docs/getting_started/step_by_step/exporting.rst:285 msgid "Exporting by platform" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:293 +#: ../../docs/getting_started/step_by_step/exporting.rst:287 msgid "In this section, we'll walk through the process for each platform, including any additional software or requirements you'll need." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:297 +#: ../../docs/getting_started/step_by_step/exporting.rst:291 msgid "PC (Linux/macOS/Windows)" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:299 +#: ../../docs/getting_started/step_by_step/exporting.rst:293 msgid "Exporting PC platforms works the same across the three supported operating systems. Open the export window and click \"Add..\" to create the preset(s) you want to make. Then click \"Export Project\" and choose a name and destination folder. Choose a location *outside* of your project folder." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:304 +#: ../../docs/getting_started/step_by_step/exporting.rst:298 msgid "Click \"Save\" and the engine will build the export files." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:306 +#: ../../docs/getting_started/step_by_step/exporting.rst:300 msgid "When exporting for macOS, if you export on a macOS computer, you'll end up with a `.dmg` file, while using Linux or Windows produces a `.zip`. In either case, the compressed file contains a macOS `.app` that you can double-click and run." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:311 +#: ../../docs/getting_started/step_by_step/exporting.rst:305 msgid "On Windows, if you want your exported executable to have a different icon than the default one, you need to change it manually. See: :ref:`doc_changing_application_icon_for_windows`." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:316 +#: ../../docs/getting_started/step_by_step/exporting.rst:310 msgid "Android" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:318 +#: ../../docs/getting_started/step_by_step/exporting.rst:312 msgid "Mobile devices come with a wide variety of capabilities. In most cases, Godot's default settings will work, but mobile development is sometimes more art than science, and you may need to do some experimenting and searching for help in order to get everything working." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:324 +#: ../../docs/getting_started/step_by_step/exporting.rst:318 msgid "Before you can export your project for Android, you must download the following software:" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:327 +#: ../../docs/getting_started/step_by_step/exporting.rst:321 msgid "Android SDK: https://developer.android.com/studio/" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:328 +#: ../../docs/getting_started/step_by_step/exporting.rst:322 msgid "Java JDK: http://www.oracle.com/technetwork/java/javase/downloads/index.html" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:330 +#: ../../docs/getting_started/step_by_step/exporting.rst:324 msgid "When you run Android Studio for the first time, click on *Configure -> SDK Manager* and install \"Android SDK Platform Tools\". This installs the `adb` command-line tool that Godot uses to communicate with your device." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:334 +#: ../../docs/getting_started/step_by_step/exporting.rst:328 msgid "Next, create a debug keystore by running the following command on your system's command line:" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:341 +#: ../../docs/getting_started/step_by_step/exporting.rst:335 msgid "Click on *Editor -> Editor Settings* in Godot and select the *Export/Android* section. Here, you need to set the paths to the Android SDK applications on your system and the location of the keystore you just created." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:347 +#: ../../docs/getting_started/step_by_step/exporting.rst:341 msgid "Now you're ready to export. Click on *Project -> Export* and add a preset for Android (see above). Select the Android Presets and under *Options* go to *Screen* and set *Orientation* to \"Portrait\"." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:351 +#: ../../docs/getting_started/step_by_step/exporting.rst:345 msgid "Click the \"Export Project\" button and Godot will build an APK you can download on your device. To do this on the command line, use the following:" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:358 +#: ../../docs/getting_started/step_by_step/exporting.rst:352 msgid "Your device may need to be in *developer mode*. Consult your device's documentation for details." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:361 +#: ../../docs/getting_started/step_by_step/exporting.rst:355 msgid "If your system supports it, connecting a compatible Android device will cause a \"One-click Deploy\" button to appear in Godot's playtest button area:" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:366 +#: ../../docs/getting_started/step_by_step/exporting.rst:360 msgid "Clicking this button builds the APK and copies it onto your device in one step." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:369 +#: ../../docs/getting_started/step_by_step/exporting.rst:363 msgid "iOS" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:371 +#: ../../docs/getting_started/step_by_step/exporting.rst:365 msgid "In order to build your game for iOS, you must have a computer running macOS with Xcode installed." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:374 +#: ../../docs/getting_started/step_by_step/exporting.rst:368 msgid "Before exporting, there are some settings that you *must* complete for the project to export successfully. First, the \"App Store Team Id\", which you can find by logging in to your Apple developer account and looking in the \"Membership\" section." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:378 +#: ../../docs/getting_started/step_by_step/exporting.rst:372 msgid "You must also provide icons and splash screen images as shown below:" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:382 +#: ../../docs/getting_started/step_by_step/exporting.rst:376 msgid "Click \"Export Project\" and select a destination folder." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:384 +#: ../../docs/getting_started/step_by_step/exporting.rst:378 msgid "Once you have successfully exported the project, you'll find the following folders and files have been created in your selected location:" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:389 +#: ../../docs/getting_started/step_by_step/exporting.rst:383 msgid "You can now open the project in Xcode and build the project for iOS. Xcode build procedure is beyond the scope of this tutorial. See https://help.apple.com/xcode/mac/current/#/devc8c2a6be1 for more information." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:395 +#: ../../docs/getting_started/step_by_step/exporting.rst:389 msgid "HTML5 (web)" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:397 +#: ../../docs/getting_started/step_by_step/exporting.rst:391 msgid "Click \"Export Project\" on the HTML5 preset. We don't need to change any of the default settings." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:400 +#: ../../docs/getting_started/step_by_step/exporting.rst:394 msgid "When the export is complete, you'll have a folder containing the following files:" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:405 +#: ../../docs/getting_started/step_by_step/exporting.rst:399 msgid "Viewing the `.html` file in your browser lets you play the game. However, you can't open the file directly, it needs to be served by a web server. If you don't have one set up on your computer, you can search online to find suggestions for your specific OS." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:410 +#: ../../docs/getting_started/step_by_step/exporting.rst:404 msgid "Point your browser at the URL where you've placed the html file. You may have to wait a few moments while the game loads before you see the start screen." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:415 +#: ../../docs/getting_started/step_by_step/exporting.rst:409 msgid "The console window beneath the game tells you if anything goes wrong. You can disable it by setting \"Export With Debug\" off when you export the project." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:420 +#: ../../docs/getting_started/step_by_step/exporting.rst:414 msgid "While WASM is supported in all major browsers, it is still an emerging technology and you may find some things that don't work. Make sure you have updated your browser to the most recent version, and report any bugs you find at the `Godot GitHub repository `_." msgstr "" diff --git a/sphinx/templates/getting_started/step_by_step/filesystem.pot b/sphinx/templates/getting_started/step_by_step/filesystem.pot index 4560db84c6..b2df329c74 100644 --- a/sphinx/templates/getting_started/step_by_step/filesystem.pot +++ b/sphinx/templates/getting_started/step_by_step/filesystem.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/godot_design_philosophy.pot b/sphinx/templates/getting_started/step_by_step/godot_design_philosophy.pot index 3bacccd16f..c866467743 100644 --- a/sphinx/templates/getting_started/step_by_step/godot_design_philosophy.pot +++ b/sphinx/templates/getting_started/step_by_step/godot_design_philosophy.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/index.pot b/sphinx/templates/getting_started/step_by_step/index.pot index d02cd4372d..0e5f99cbc7 100644 --- a/sphinx/templates/getting_started/step_by_step/index.pot +++ b/sphinx/templates/getting_started/step_by_step/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/instancing.pot b/sphinx/templates/getting_started/step_by_step/instancing.pot index 95e0de2e48..7e5465436b 100644 --- a/sphinx/templates/getting_started/step_by_step/instancing.pot +++ b/sphinx/templates/getting_started/step_by_step/instancing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/instancing_continued.pot b/sphinx/templates/getting_started/step_by_step/instancing_continued.pot index e20f12ed2a..fe64ac3616 100644 --- a/sphinx/templates/getting_started/step_by_step/instancing_continued.pot +++ b/sphinx/templates/getting_started/step_by_step/instancing_continued.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/intro_to_the_editor_interface.pot b/sphinx/templates/getting_started/step_by_step/intro_to_the_editor_interface.pot index 0d2ab4ffa5..300df616a5 100644 --- a/sphinx/templates/getting_started/step_by_step/intro_to_the_editor_interface.pot +++ b/sphinx/templates/getting_started/step_by_step/intro_to_the_editor_interface.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/resources.pot b/sphinx/templates/getting_started/step_by_step/resources.pot index 7b627bd808..f5b3574f3f 100644 --- a/sphinx/templates/getting_started/step_by_step/resources.pot +++ b/sphinx/templates/getting_started/step_by_step/resources.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -168,63 +168,59 @@ msgstr "" msgid "They can extend **other** resource types besides just the base Resource." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:185 -msgid "Resources and Dictionaries are both passed by reference, but only Resources are reference-counted. This means that if a Dictionary is passed between objects and the first object is deleted, all other objects' references to the Dictionary will be invalidated. Conversely, Resources will not be freed from memory until *all* the objects are deleted." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:215 +#: ../../docs/getting_started/step_by_step/resources.rst:183 msgid "Godot makes it easy to create custom Resources in the Inspector." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:217 +#: ../../docs/getting_started/step_by_step/resources.rst:185 msgid "Create a plain Resource object in the Inspector. This can even be a type that derives Resource, so long as your script is extending that type." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:218 +#: ../../docs/getting_started/step_by_step/resources.rst:186 msgid "Set the ``script`` property in the Inspector to be your script." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:220 +#: ../../docs/getting_started/step_by_step/resources.rst:188 msgid "The Inspector will now display your Resource script's custom properties. If one edits those values and saves the resource, the Inspector serializes the custom properties too! To save a resource from the Inspector, click the Inspector's tools menu (top right), and select \"Save\" or \"Save As...\"." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:225 +#: ../../docs/getting_started/step_by_step/resources.rst:193 msgid "If the script's language supports :ref:`script classes `, then it streamlines the process. Defining a name for your script alone will add it to the Inspector's creation dialog. This will auto-add your script to the Resource object you create." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:230 +#: ../../docs/getting_started/step_by_step/resources.rst:198 msgid "Let's see some examples." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:303 +#: ../../docs/getting_started/step_by_step/resources.rst:271 msgid "Resource scripts are similar to Unity's ScriptableObjects. The Inspector provides built-in support for custom resources. If desired though, users can even design their own Control-based tool scripts and combine them with an :ref:`EditorPlugin ` to create custom visualizations and editors for their data." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:309 +#: ../../docs/getting_started/step_by_step/resources.rst:277 msgid "Unreal Engine 4's DataTables and CurveTables are also easy to recreate with Resource scripts. DataTables are a String mapped to a custom struct, similar to a Dictionary mapping a String to a secondary custom Resource script." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:345 +#: ../../docs/getting_started/step_by_step/resources.rst:313 msgid "Instead of just inlining the Dictionary values, one could also, alternatively..." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:347 +#: ../../docs/getting_started/step_by_step/resources.rst:315 msgid "Import a table of values from a spreadsheet and generate these key-value pairs, or..." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:349 +#: ../../docs/getting_started/step_by_step/resources.rst:317 msgid "Design a visualization within the editor and create a simple plugin that adds it to the Inspector when you open these types of Resources." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:352 +#: ../../docs/getting_started/step_by_step/resources.rst:320 msgid "CurveTables are the same thing, except mapped to an Array of float values or a :ref:`Curve `/:ref:`Curve2D ` resource object." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:357 +#: ../../docs/getting_started/step_by_step/resources.rst:325 msgid "Beware that resource files (\\*.tres/\\*.res) will store the path of the script they use in the file. When loaded, they will fetch and load this script as an extension of their type. This means that trying to assign a subclass, i.e. an inner class of a script (such as using the ``class`` keyword in GDScript) won't work. Godot will not serialize the custom properties on the script subclass properly." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:363 +#: ../../docs/getting_started/step_by_step/resources.rst:331 msgid "In the example below, Godot would load the ``Node`` script, see that it doesn't extend ``Resource``, and then determine that the script failed to load for the Resource object since the types are incompatible." msgstr "" diff --git a/sphinx/templates/getting_started/step_by_step/scene_tree.pot b/sphinx/templates/getting_started/step_by_step/scene_tree.pot index 95caa409e2..2fa108c7ed 100644 --- a/sphinx/templates/getting_started/step_by_step/scene_tree.pot +++ b/sphinx/templates/getting_started/step_by_step/scene_tree.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/scenes_and_nodes.pot b/sphinx/templates/getting_started/step_by_step/scenes_and_nodes.pot index 65fa96a499..9405af2d99 100644 --- a/sphinx/templates/getting_started/step_by_step/scenes_and_nodes.pot +++ b/sphinx/templates/getting_started/step_by_step/scenes_and_nodes.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/scripting.pot b/sphinx/templates/getting_started/step_by_step/scripting.pot index 8dd82851da..7aa1dc81d7 100644 --- a/sphinx/templates/getting_started/step_by_step/scripting.pot +++ b/sphinx/templates/getting_started/step_by_step/scripting.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/scripting_continued.pot b/sphinx/templates/getting_started/step_by_step/scripting_continued.pot index 68872daca6..4d3ebfc05d 100644 --- a/sphinx/templates/getting_started/step_by_step/scripting_continued.pot +++ b/sphinx/templates/getting_started/step_by_step/scripting_continued.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/signals.pot b/sphinx/templates/getting_started/step_by_step/signals.pot index 98c4994c28..85a7036b06 100644 --- a/sphinx/templates/getting_started/step_by_step/signals.pot +++ b/sphinx/templates/getting_started/step_by_step/signals.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/singletons_autoload.pot b/sphinx/templates/getting_started/step_by_step/singletons_autoload.pot index ab9e22a36a..137ed96ec0 100644 --- a/sphinx/templates/getting_started/step_by_step/singletons_autoload.pot +++ b/sphinx/templates/getting_started/step_by_step/singletons_autoload.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/splash_screen.pot b/sphinx/templates/getting_started/step_by_step/splash_screen.pot index 27ba81a49f..75ebb73ba3 100644 --- a/sphinx/templates/getting_started/step_by_step/splash_screen.pot +++ b/sphinx/templates/getting_started/step_by_step/splash_screen.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/ui_code_a_life_bar.pot b/sphinx/templates/getting_started/step_by_step/ui_code_a_life_bar.pot index fd759c373c..3176043877 100644 --- a/sphinx/templates/getting_started/step_by_step/ui_code_a_life_bar.pot +++ b/sphinx/templates/getting_started/step_by_step/ui_code_a_life_bar.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/ui_game_user_interface.pot b/sphinx/templates/getting_started/step_by_step/ui_game_user_interface.pot index 2ac5ebea52..76576ca24d 100644 --- a/sphinx/templates/getting_started/step_by_step/ui_game_user_interface.pot +++ b/sphinx/templates/getting_started/step_by_step/ui_game_user_interface.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/ui_introduction_to_the_ui_system.pot b/sphinx/templates/getting_started/step_by_step/ui_introduction_to_the_ui_system.pot index 98842b91fd..e05d13bf87 100644 --- a/sphinx/templates/getting_started/step_by_step/ui_introduction_to_the_ui_system.pot +++ b/sphinx/templates/getting_started/step_by_step/ui_introduction_to_the_ui_system.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/ui_main_menu.pot b/sphinx/templates/getting_started/step_by_step/ui_main_menu.pot index 7d7d984d52..53293af382 100644 --- a/sphinx/templates/getting_started/step_by_step/ui_main_menu.pot +++ b/sphinx/templates/getting_started/step_by_step/ui_main_menu.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/step_by_step/your_first_game.pot b/sphinx/templates/getting_started/step_by_step/your_first_game.pot index 9463429236..fc53f92bff 100644 --- a/sphinx/templates/getting_started/step_by_step/your_first_game.pot +++ b/sphinx/templates/getting_started/step_by_step/your_first_game.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -37,731 +37,807 @@ msgid "The game is called \"Dodge the Creeps!\". Your character must move and av msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:24 -msgid "**Why 2D?** 3D games are much more complex than 2D ones. You should stick to 2D until you have a good understanding of the game development process." +msgid "**Why 2D?** 3D games are much more complex than 2D ones. You should stick to 2D until you have a good understanding of the game development process and how to use Godot." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:28 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:29 msgid "Project setup" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:30 -msgid "Launch Godot and create a new project. Then, download :download:`dodge_assets.zip ` - the images and sounds you'll be using to make the game. Unzip these files to your project folder." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:31 +msgid "Launch Godot and create a new project. Then, download :download:`dodge_assets.zip `. This contains the images and sounds you'll be using to make the game. Unzip these files in your project folder." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:34 -msgid "For this tutorial, we will assume you are familiar with the editor. If you haven't read :ref:`doc_scenes_and_nodes`, do so now for an explanation of setting up a project and using the editor." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:36 +msgid "For this tutorial, we will assume you are familiar with the Godot editor. If you haven't read :ref:`doc_scenes_and_nodes`, do so now for an explanation of setting up a project and using the editor." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:38 -msgid "This game will use portrait mode, so we need to adjust the size of the game window. Click on Project -> Project Settings -> Display -> Window and set \"Width\" to ``480`` and \"Height\" to ``720``." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:40 +msgid "This game is designed for portrait mode, so we need to adjust the size of the game window. Click on Project -> Project Settings -> Display -> Window and set \"Width\" to ``480`` and \"Height\" to ``720``." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:43 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:44 +msgid "Also in this section, 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/step_by_step/your_first_game.rst:49 msgid "Organizing the project" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:45 -msgid "In this project, we will make 3 independent scenes: ``Player``, ``Mob``, and ``HUD``, which we will combine into the game's ``Main`` scene. In a larger project, it might be useful to make 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, referred to as ``res://``. You can see your project folders in the FileSystem Dock in the lower left corner:" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:51 +msgid "In this project, we will make 3 independent scenes: ``Player``, ``Mob``, and ``HUD``, which we will combine into the game's ``Main`` scene. 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/step_by_step/your_first_game.rst:56 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:62 msgid "Player scene" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:58 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:64 msgid "The first scene we will make defines 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/step_by_step/your_first_game.rst:63 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:69 msgid "Node structure" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:65 -msgid "To begin, click the \"Add/Create a New Node\" button and add an :ref:`Area2D ` node to the scene." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:70 -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/step_by_step/your_first_game.rst:73 -msgid "With ``Area2D`` we can detect objects that overlap or run into the player. Change its name to ``Player`` by clicking on the node's name. This is the scene's root node. We can add additional nodes to the player to add functionality." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:71 +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 ` node to the scene." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:78 +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/step_by_step/your_first_game.rst:81 +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/step_by_step/your_first_game.rst:86 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/step_by_step/your_first_game.rst:85 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:93 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/step_by_step/your_first_game.rst:87 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:95 msgid "For this project, we will be following the Godot naming conventions." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:89 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:97 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/step_by_step/your_first_game.rst:93 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:101 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/step_by_step/your_first_game.rst:100 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:108 msgid "Sprite animation" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:102 -msgid "Click on the ``Player`` node and add an :ref:`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 ``AnimatedSprite`` requires a :ref:`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\". This should automatically open the SpriteFrames panel." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:110 +msgid "Click on the ``Player`` node and add an :ref:`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 ``AnimatedSprite`` requires a :ref:`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/step_by_step/your_first_game.rst:113 -msgid "On the left is a list of animations. Click the \"default\" one and rename it to \"right\". Then click the \"Add\" button to create a second animation named \"up\". 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:" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:121 +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/step_by_step/your_first_game.rst:120 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:130 msgid "The player images are a bit too large for the game window, so we need to scale them down. Click on the ``AnimatedSprite`` 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/step_by_step/your_first_game.rst:127 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:137 msgid "Finally, add a :ref:`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/step_by_step/your_first_game.rst:136 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:146 msgid "When you're finished, your ``Player`` scene should look like this:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:141 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:150 +msgid "Make sure to save the scene again after these changes." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:153 msgid "Moving the player" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:143 -msgid "Now 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 \"Add Script\" button:" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:155 +msgid "Now 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/step_by_step/your_first_game.rst:149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:161 msgid "In the script settings window, you can leave the default settings alone. Just click \"Create\":" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:152 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:164 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/step_by_step/your_first_game.rst:157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:169 msgid "If this is your first time encountering GDScript, please read :ref:`doc_scripting` before continuing." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:160 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:172 msgid "Start by declaring the member variables this object will need:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:181 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:193 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/step_by_step/your_first_game.rst:188 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:200 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/step_by_step/your_first_game.rst:196 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:208 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/step_by_step/your_first_game.rst:212 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:224 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/step_by_step/your_first_game.rst:217 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:229 msgid "Check for input." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:230 msgid "Move in the given direction." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:219 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:231 msgid "Play the appropriate animation." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:233 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 demo, we will use the default events that are assigned to the arrow keys on the keyboard." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:228 -msgid "You can detect whether a key is pressed using ``Input.is_action_pressed()``, which returns ``true`` if it is pressed or ``false`` if it isn't." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:240 +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/step_by_step/your_first_game.rst:290 -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* than if it just moved horizontally." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:302 +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/step_by_step/your_first_game.rst:297 -msgid "We can prevent that if we *normalize* the velocity, which means we set its *length* to ``1``, and multiply by the desired speed. This means no more fast diagonal movement." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:309 +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/step_by_step/your_first_game.rst:301 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:313 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/step_by_step/your_first_game.rst:305 -msgid "We also check whether the player is moving so we can start or stop the AnimatedSprite animation." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:317 +msgid "We also check whether the player is moving so we can call ``play()`` or ``stop()`` on the AnimatedSprite." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:308 -msgid "In GDScript, ``$`` returns the node at the relative path from the current node, or returns ``null`` if the node is not found. Since AnimatedSprite is a child of the current node, we can use ``$AnimatedSprite``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:311 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:320 msgid "``$`` is shorthand for ``get_node()``. So in the code above, ``$AnimatedSprite.play()`` is the same as ``get_node(\"AnimatedSprite\").play()``." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:314 -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:" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:323 +msgid "In GDScript, ``$`` returns the node at the relative path from the current node, or returns ``null`` if the node is not found. Since AnimatedSprite is a child of the current node, we can use ``$AnimatedSprite``." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:335 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:326 +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/step_by_step/your_first_game.rst:347 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/step_by_step/your_first_game.rst:340 -msgid "Click \"Play Scene\" (``F6``) and confirm you can move the player around the screen in all directions. The console output that opens upon playing the scene can be closed by clicking ``Output`` (which should be highlighted in blue) in the lower left of the Bottom Panel." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:352 +msgid "Click \"Play Scene\" (``F6``) and confirm you can move the player around the screen in all directions." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:345 -msgid "If you get an error in the \"Debugger\" panel that refers to a \"null instance\", this likely means you spelled the node name wrong. Node names are case-sensitive and ``$NodeName`` or ``get_node(\"NodeName\")`` must match the name you see in the scene tree." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:355 +msgid "If you get an error in the \"Debugger\" panel that says" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:350 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:357 +msgid "``Attempt to call function 'play' in base 'null instance' on a null instance``" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:359 +msgid "this likely means you spelled the name of the AnimatedSprite node wrong. Node names are case-sensitive and ``$NodeName`` must match the name you see in the scene tree." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:364 msgid "Choosing animations" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:352 -msgid "Now that the player can move, we need to change which animation the AnimatedSprite is playing based on direction. We have a \"right\" animation, which should be flipped horizontally using the ``flip_h`` property for left movement, and an \"up\" animation, which should be flipped vertically with ``flip_v`` for downward movement. Let's place this code at the end of our ``_process()`` function:" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:366 +msgid "Now that the player can move, we need to change which animation the AnimatedSprite 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/step_by_step/your_first_game.rst:386 -msgid "The boolean assignments in the code above are a common shorthand for programmers. Consider this code versus the shortened boolean assignment above:" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:401 +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/step_by_step/your_first_game.rst:409 -msgid "Play the scene again and check that the animations are correct in each of the directions. When you're sure the movement is working correctly, add this line to ``_ready()``, so the player will be hidden when the game starts:" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:425 +msgid "Play the scene again and check that the animations are correct in each of the directions." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:424 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:428 +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/step_by_step/your_first_game.rst:433 +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/step_by_step/your_first_game.rst:446 msgid "Preparing for collisions" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:426 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:448 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/step_by_step/your_first_game.rst:430 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:452 msgid "Add the following at the top of the script, after ``extends Area2d``:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:444 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:466 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/step_by_step/your_first_game.rst:451 -msgid "Notice our custom \"hit\" signal is there as well! Since our enemies are going to be ``RigidBody2D`` nodes, we want the ``body_entered( Object body )`` signal; this will be emitted when a body contacts the player. Click \"Connect..\" and then \"Connect\" again on the \"Connecting Signal\" window. We don't need to change any of these settings - Godot will automatically create a function in your player's script. This function will be called whenever the signal is emitted - it *handles* the signal." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:473 +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/step_by_step/your_first_game.rst:460 -msgid "When connecting a signal, instead of having Godot create a function for you, you can also give the name of an existing function that you want to link the signal to." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:482 +msgid "Note the green icon indicating that a signal is connected to this function. Add this code to the function:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:464 -msgid "Add this code to the function:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:483 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:502 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/step_by_step/your_first_game.rst:487 -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()`` allows us to have Godot wait to disable the shape until it's safe to do so." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:506 +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/step_by_step/your_first_game.rst:492 -msgid "The last piece for our player is to add a function we can call to reset the player when starting a new game." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:510 +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/step_by_step/your_first_game.rst:513 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:531 msgid "Enemy scene" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:515 -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 and move in a random direction in a straight line, then despawn when they go offscreen." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:520 -msgid "We will build this into a ``Mob`` scene, which we can then *instance* to create any number of independent mobs in the game." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:524 -msgid "Node setup" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:526 -msgid "Click Scene -> New Scene and we'll create the Mob." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:528 -msgid "The Mob scene will use the following nodes:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:530 -msgid ":ref:`RigidBody2D ` (named ``Mob``)" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:532 -msgid ":ref:`AnimatedSprite `" -msgstr "" - #: ../../docs/getting_started/step_by_step/your_first_game.rst:533 -msgid ":ref:`CollisionShape2D `" +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/step_by_step/your_first_game.rst:534 -msgid ":ref:`VisibilityNotifier2D ` (named ``Visibility``)" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:537 +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/step_by_step/your_first_game.rst:536 -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/step_by_step/your_first_game.rst:539 -msgid "In the :ref:`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/step_by_step/your_first_game.rst:546 -msgid "Set up the :ref:`AnimatedSprite ` like you did for the player. This time, we have 3 animations: ``fly``, ``swim``, and ``walk``. Set the ``Playing`` property in the Inspector to \"On\" and adjust the \"Speed (FPS)\" setting as shown below. We'll select one of these animations randomly so that the mobs will have some variety." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:553 -msgid "``fly`` should be set to 3 FPS, with ``swim`` and ``walk`` set to 4 FPS." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:555 -msgid "Like the player images, these mob images need to be scaled down. Set the ``AnimatedSprite``'s ``Scale`` property to ``(0.75, 0.75)``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:558 -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 ``Node2D``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:563 -msgid "Enemy script" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:565 -msgid "Add a script to the ``Mob`` and add the following member variables:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:591 -msgid "When we spawn a mob, we'll pick a random value between ``min_speed`` and ``max_speed`` for how fast each mob will move (it would be boring if they were all moving at the same speed). We also have an array containing the names of the three animations, which we'll use to select a random one. Make sure you've spelled these the same in the script and in the SpriteFrames resource." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:597 -msgid "Now let's look at the rest of the script. In ``_ready()`` we randomly choose one of the three animation types:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:616 -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. ``randi() % n`` is the standard way to get a random integer between ``0`` and ``n-1``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:622 -msgid "The last piece is to make the mobs delete themselves when they leave the screen. Connect the ``screen_exited()`` signal of the ``Visibility`` node and add this code:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:639 -msgid "This completes the `Mob` scene." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:642 -msgid "Main scene" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:644 -msgid "Now it's time to bring it all together. Create a new scene and add a :ref:`Node ` named ``Main``. Click the \"Instance\" button and select your saved ``Player.tscn``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:650 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:540 msgid "See :ref:`doc_instancing` to learn more about instancing." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:652 -msgid "Now, add the following nodes as children of ``Main``, and name them as shown (values are in seconds):" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:543 +msgid "Node setup" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:655 -msgid ":ref:`Timer ` (named ``MobTimer``) - to control how often mobs spawn" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:545 +msgid "Click Scene -> New Scene and add the following nodes:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:656 -msgid ":ref:`Timer ` (named ``ScoreTimer``) - to increment the score every second" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:547 +msgid ":ref:`RigidBody2D ` (named ``Mob``)" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:657 -msgid ":ref:`Timer ` (named ``StartTimer``) - to give a delay before starting" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:549 +msgid ":ref:`AnimatedSprite `" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:658 -msgid ":ref:`Position2D ` (named ``StartPosition``) - to indicate the player's start position" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:550 +msgid ":ref:`CollisionShape2D `" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:660 -msgid "Set the ``Wait Time`` property of each of the ``Timer`` nodes as follows:" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:551 +msgid ":ref:`VisibilityNotifier2D `" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:663 -msgid "``MobTimer``: ``0.5``" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:553 +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/step_by_step/your_first_game.rst:556 +msgid "In the :ref:`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/step_by_step/your_first_game.rst:563 +msgid "Set up the :ref:`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/step_by_step/your_first_game.rst:567 +msgid "Adjust the \"Speed (FPS)\" to ``3`` for all animations." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:571 +msgid "Set the ``Playing`` property in the Inspector to “On”." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:573 +msgid "We'll select one of these animations randomly so that the mobs will have some variety." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:575 +msgid "Like the player images, these mob images need to be scaled down. Set the ``AnimatedSprite``'s ``Scale`` property to ``(0.75, 0.75)``." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:578 +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/step_by_step/your_first_game.rst:582 +msgid "Save the scene." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:585 +msgid "Enemy script" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:587 +msgid "Add a script to the ``Mob`` and add the following member variables:" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:611 +msgid "When we spawn a mob, we'll pick a random value between ``min_speed`` and ``max_speed`` for how fast each mob will move (it would be boring if they were all moving at the same speed)." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:615 +msgid "Now let's look at the rest of the script. In ``_ready()`` we randomly choose one of the three animation types:" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:635 +msgid "First, we get the list of animation names from the AnimatedSprite's ``frames`` property. This returns an Array containing all three animation names: ``[\"walk\", \"swim\", \"fly]``." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:639 +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/step_by_step/your_first_game.rst:643 +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/step_by_step/your_first_game.rst:647 +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/step_by_step/your_first_game.rst:664 -msgid "``ScoreTimer``: ``1``" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:665 -msgid "``StartTimer``: ``2``" +msgid "This completes the `Mob` scene." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:667 -msgid "In addition, set the ``One Shot`` property of ``StartTimer`` to \"On\" and set ``Position`` of the ``StartPosition`` node to ``(240, 450)``." +msgid "Main scene" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:671 -msgid "Spawning mobs" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:669 +msgid "Now it's time to bring it all together. Create a new scene and add a :ref:`Node ` named ``Main``. Click the \"Instance\" button and select your saved ``Player.tscn``." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:673 -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 ` node named ``MobPath`` as a child of ``Main``. When you select ``Path2D``, you will see some new buttons at the top of the editor:" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:675 +msgid "Now, add the following nodes as children of ``Main``, and name them as shown (values are in seconds):" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:678 +msgid ":ref:`Timer ` (named ``MobTimer``) - to control how often mobs spawn" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:679 +msgid ":ref:`Timer ` (named ``ScoreTimer``) - to increment the score every second" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:680 -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\" is selected. This option can be found to the left of the \"Lock\" button, appearing as a magnet next to some intersecting lines." +msgid ":ref:`Timer ` (named ``StartTimer``) - to give a delay before starting" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:681 +msgid ":ref:`Position2D ` (named ``StartPosition``) - to indicate the player's start position" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:683 +msgid "Set the ``Wait Time`` property of each of the ``Timer`` nodes as follows:" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:686 +msgid "``MobTimer``: ``0.5``" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:687 -msgid "Draw the path in *clockwise* order, or your mobs will spawn pointing *outwards* instead of *inwards*!" +msgid "``ScoreTimer``: ``1``" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:688 +msgid "``StartTimer``: ``2``" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:690 +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/step_by_step/your_first_game.rst:694 +msgid "Spawning mobs" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:696 +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 ` 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/step_by_step/your_first_game.rst:703 +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\" is selected. This option can be found to the left of the \"Lock\" button, appearing as a magnet next to some intersecting lines." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:710 +msgid "Draw the path in *clockwise* order, or your mobs will spawn pointing *outwards* instead of *inwards*!" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:715 msgid "After placing point ``4`` in the image, click the \"Close Curve\" button and your curve will be complete." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:693 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:718 msgid "Now that the path is defined, add a :ref:`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/step_by_step/your_first_game.rst:699 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:723 +msgid "Your scene should look like this:" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:728 msgid "Main script" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:701 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:730 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/step_by_step/your_first_game.rst:741 -msgid "Drag ``Mob.tscn`` from the \"FileSystem\" panel and drop it in the ``Mob`` property under the Script Variables of the ``Main`` node." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:770 +msgid "Click the ``Main`` node and you will see the ``Mob`` property in the Inspector under \"Script Variables\"." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:744 -msgid "Next, click on the Player and connect the ``hit`` signal. 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 \"Connecting Signal\" window. Add the following code, as well as a ``new_game`` function to set everything up for a new game:" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:773 +msgid "You can assign this property's value in two ways:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:781 -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." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:775 +msgid "Drag ``Mob.tscn`` from the \"FileSystem\" panel and drop it in the ``Mob`` property ." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:808 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:777 +msgid "Click the down arrow next to \"[empty]\" and choose \"Load\". Select ``Mob.tscn``." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:780 +msgid "Next, click on the Player and connect the ``hit`` signal. 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 \"Connect a Signal\" window 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/step_by_step/your_first_game.rst:818 +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/step_by_step/your_first_game.rst:845 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:814 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:851 msgid "Note that a new instance must be added to the scene using ``add_child()``." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:863 -msgid "In functions requiring angles, GDScript uses *radians*, not degrees. If you're more comfortable working with degrees, you'll need to use the ``deg2rad()`` and ``rad2deg()`` functions to convert between the two." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:899 +msgid "Why ``PI``? In functions requiring angles, GDScript uses *radians*, not degrees. 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/step_by_step/your_first_game.rst:869 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:905 +msgid "Testing the scene" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:907 +msgid "Let's test the scene to make sure everything is working. Add this to ``_ready()``:" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:924 +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/step_by_step/your_first_game.rst:928 +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/step_by_step/your_first_game.rst:931 +msgid "When you're sure everything is working, remove the call to ``new_game()`` from ``_ready()``." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:935 msgid "HUD" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:871 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:937 msgid "The final piece our game needs is a UI: an interface to display things like score, a \"game over\" message, and a restart button. Create a new scene, and add a :ref:`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/step_by_step/your_first_game.rst:877 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:943 msgid "The :ref:`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/step_by_step/your_first_game.rst:881 -msgid "The HUD displays the following information:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:883 -msgid "Score, changed by ``ScoreTimer``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:884 -msgid "A message, such as \"Game Over\" or \"Get Ready!\"" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:885 -msgid "A \"Start\" button to begin the game." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:887 -msgid "The basic node for UI elements is :ref:`Control `. To create our UI, we'll use two types of :ref:`Control ` nodes: :ref:`Label ` and :ref:`Button `." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:891 -msgid "Create the following as children of the ``HUD`` node:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:893 -msgid ":ref:`Label ` named ``ScoreLabel``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:894 -msgid ":ref:`Label ` named ``MessageLabel``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:895 -msgid ":ref:`Button ` named ``StartButton``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:896 -msgid ":ref:`Timer ` named ``MessageTimer``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:898 -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 for each of the three ``Control`` nodes:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:904 -msgid "Under \"Custom Fonts\", choose \"New DynamicFont\"" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:908 -msgid "Click on the \"DynamicFont\" you added, and under \"Font/Font Data\", choose \"Load\" and select the \"Xolonium-Regular.ttf\" file. You must also set the font's ``Size``. A setting of ``64`` works well." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:914 -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. See :ref:`doc_design_interfaces_with_the_control_nodes` for more details." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:921 -msgid "Arrange the nodes as shown below. Click the \"Layout\" button to set a Control node's layout:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:926 -msgid "You can drag the nodes to place them manually, or for more precise placement, use the following settings:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:930 -msgid "ScoreLabel" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:932 -msgid "*Text* : ``0``" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:933 -msgid "*Layout* : \"Top Wide\"" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:934 -#: ../../docs/getting_started/step_by_step/your_first_game.rst:941 -msgid "*Align* : \"Center\"" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:937 -msgid "MessageLabel" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:939 -msgid "*Text* : ``Dodge the Creeps!``" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:940 -msgid "*Layout* : \"HCenter Wide\"" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:942 -msgid "*Autowrap* : \"On\"" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:945 -msgid "StartButton" -msgstr "" - #: ../../docs/getting_started/step_by_step/your_first_game.rst:947 -msgid "*Text* : ``Start``" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:948 -msgid "*Layout* : \"Center Bottom\"" +msgid "The HUD needs to display the following information:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:949 -msgid "*Margin* :" +msgid "Score, changed by ``ScoreTimer``." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:950 +msgid "A message, such as \"Game Over\" or \"Get Ready!\"" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:951 -msgid "Top: ``-200``" +msgid "A \"Start\" button to begin the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:952 -msgid "Bottom: ``-100``" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:953 +msgid "The basic node for UI elements is :ref:`Control `. To create our UI, we'll use two types of :ref:`Control ` nodes: :ref:`Label ` and :ref:`Button `." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:954 -msgid "Now add this script to ``HUD``:" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:957 +msgid "Create the following as children of the ``HUD`` node:" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:959 +msgid ":ref:`Label ` named ``ScoreLabel``." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:960 +msgid ":ref:`Label ` named ``Message``." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:961 +msgid ":ref:`Button ` named ``StartButton``." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:962 +msgid ":ref:`Timer ` named ``MessageTimer``." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:964 +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/step_by_step/your_first_game.rst:969 +msgid "Under \"Custom Fonts\", choose \"New DynamicFont\"" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:973 -msgid "The ``start_game`` signal tells the ``Main`` node that the button has been pressed." +msgid "Click on the \"DynamicFont\" you added, and under \"Font/Font Data\", choose \"Load\" and select the \"Xolonium-Regular.ttf\" file. You must also set the font's ``Size``. A setting of ``64`` works well." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:979 +msgid "Once you've done this on the ``ScoreLabel``, you can click the down arrow next to the DynamicFont property and choose \"Copy\", then \"Paste\" it in the same place on the other two Control nodes." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:983 +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. See :ref:`doc_design_interfaces_with_the_control_nodes` for more details." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:990 +msgid "Arrange the nodes as shown below. Click the \"Layout\" button to set a Control node's layout:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:995 -msgid "This function is called when we want to display a message temporarily, such as \"Get Ready\". On the ``MessageTimer``, set the ``Wait Time`` to ``2`` and set the ``One Shot`` property to \"On\"." +msgid "You can drag the nodes to place them manually, or for more precise placement, use the following settings:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1030 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:999 +msgid "ScoreLabel" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1001 +msgid "*Layout* : \"Top Wide\"" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1002 +msgid "*Text* : ``0``" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1003 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1010 +msgid "*Align* : \"Center\"" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1006 +msgid "Message" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1008 +msgid "*Layout* : \"HCenter Wide\"" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1009 +msgid "*Text* : ``Dodge the Creeps!``" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1011 +msgid "*Autowrap* : \"On\"" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1014 +msgid "StartButton" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1016 +msgid "*Text* : ``Start``" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1017 +msgid "*Layout* : \"Center Bottom\"" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1018 +msgid "*Margin* :" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1020 +msgid "Top: ``-200``" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1021 +msgid "Bottom: ``-100``" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1023 +msgid "On the ``MessageTimer``, set the ``Wait Time`` to ``2`` and set the ``One Shot`` property to \"On\"." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1026 +msgid "Now add this script to ``HUD``:" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1045 +msgid "The ``start_game`` signal tells the ``Main`` node that the button has been pressed." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1067 +msgid "This function is called when we want to display a message temporarily, such as \"Get Ready\"." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1100 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/step_by_step/your_first_game.rst:1034 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1104 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/step_by_step/your_first_game.rst:1052 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1122 msgid "This function is called by ``Main`` whenever the score changes." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1054 -msgid "Connect the ``timeout()`` signal of ``MessageTimer`` and the ``pressed()`` signal of ``StartButton``." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1124 +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/step_by_step/your_first_game.rst:1081 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1152 msgid "Connecting HUD to Main" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1083 -msgid "Now that we're done creating the ``HUD`` scene, save it and go back to ``Main``. Instance the ``HUD`` scene in ``Main`` like you did the ``Player`` scene, and place it at the bottom of the tree. The full tree should look like this, so make sure you didn't miss anything:" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1154 +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/step_by_step/your_first_game.rst:1090 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1160 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/step_by_step/your_first_game.rst:1093 -msgid "In the Node tab, connect the HUD's ``start_game`` signal to the ``new_game()`` function of the Main node." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1163 +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/step_by_step/your_first_game.rst:1096 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 msgid "In ``new_game()``, update the score display and show the \"Get Ready\" message:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1111 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1183 msgid "In ``game_over()`` we need to call the corresponding ``HUD`` function:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1122 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 msgid "Finally, add this to ``_on_ScoreTimer_timeout()`` to keep the display in sync with the changing score:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1134 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 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/step_by_step/your_first_game.rst:1138 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1210 msgid "Removing old creeps" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1140 -msgid "If you play until \"Game Over\" and then start a new game the creeps from the previous game are still on screen. It would be better if they all disappeared at the start of a new game." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1144 -msgid "We'll use the ``start_game`` signal that's already being emitted by the ``HUD`` node to remove the remaining creeps. We can't use the editor to connect the signal to the mobs in the way we need because there are no ``Mob`` nodes in the ``Main`` scene tree until we run the game. Instead we'll use code." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 -msgid "Start by adding a new function to ``Mob.gd``. ``queue_free()`` will delete the current node at the end of the current frame." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1165 -msgid "Then in ``Main.gd`` add a new line inside the ``_on_MobTimer_timeout()`` function, at the end." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1177 -msgid "This line tells the new Mob node (referenced by the ``mob`` variable) to respond to any ``start_game`` signal emitted by the ``HUD`` node by running its ``_on_start_game()`` function." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 -msgid "Finishing up" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 -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. Feel free to expand the gameplay with your own ideas." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 -msgid "Background" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1191 -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 ` 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 drag the size of the ``ColorRect`` so that it covers the screen." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1198 -msgid "You could also add a background image, if you have one, by using a ``Sprite`` node." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 -msgid "Sound effects" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1204 -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/step_by_step/your_first_game.rst:1209 -msgid "Add two :ref:`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/step_by_step/your_first_game.rst:1214 -msgid "To play the music, add ``$Music.play()`` in the ``new_game()`` function and ``$Music.stop()`` in the ``game_over()`` function." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1212 +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/step_by_step/your_first_game.rst:1217 +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/step_by_step/your_first_game.rst:1223 +msgid "Now all mobs will be in the \"mobs\" group. We can then add the following line to the ``game_over()`` function in ``Main``:" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1236 +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/step_by_step/your_first_game.rst:1240 +msgid "Finishing up" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1242 +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. Feel free to expand the gameplay with your own ideas." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1247 +msgid "Background" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1249 +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 ` 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/step_by_step/your_first_game.rst:1255 +msgid "You could also add a background image, if you have one, by using a ``TextureRect`` node instead." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1259 +msgid "Sound effects" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1261 +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/step_by_step/your_first_game.rst:1266 +msgid "Add two :ref:`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/step_by_step/your_first_game.rst:1271 +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/step_by_step/your_first_game.rst:1274 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1220 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1277 msgid "Keyboard shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 -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. One way to do this is using the \"Shortcut\" property of the ``Button`` node." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1279 +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/step_by_step/your_first_game.rst:1226 -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 \"InputEvent\". Finally, in the *Action* property, type the name ``ui_select``. This is the default input event associated with the spacebar." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1283 +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/step_by_step/your_first_game.rst:1234 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1291 msgid "Now when the start button appears, you can either click it or press :kbd:`Space` to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1238 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1295 msgid "Project files" msgstr "" @@ -769,11 +845,11 @@ msgstr "" msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1241 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1298 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1242 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1299 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" diff --git a/sphinx/templates/getting_started/workflow/assets/escn_exporter/animation.pot b/sphinx/templates/getting_started/workflow/assets/escn_exporter/animation.pot index 9226dc1a0f..54e913cfc0 100644 --- a/sphinx/templates/getting_started/workflow/assets/escn_exporter/animation.pot +++ b/sphinx/templates/getting_started/workflow/assets/escn_exporter/animation.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/assets/escn_exporter/index.pot b/sphinx/templates/getting_started/workflow/assets/escn_exporter/index.pot index e59ca62a7b..da200c81f9 100644 --- a/sphinx/templates/getting_started/workflow/assets/escn_exporter/index.pot +++ b/sphinx/templates/getting_started/workflow/assets/escn_exporter/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/assets/escn_exporter/lights.pot b/sphinx/templates/getting_started/workflow/assets/escn_exporter/lights.pot index 6047332615..8405f31194 100644 --- a/sphinx/templates/getting_started/workflow/assets/escn_exporter/lights.pot +++ b/sphinx/templates/getting_started/workflow/assets/escn_exporter/lights.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/assets/escn_exporter/material.pot b/sphinx/templates/getting_started/workflow/assets/escn_exporter/material.pot index de7a085446..2e9409291e 100644 --- a/sphinx/templates/getting_started/workflow/assets/escn_exporter/material.pot +++ b/sphinx/templates/getting_started/workflow/assets/escn_exporter/material.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/assets/escn_exporter/mesh.pot b/sphinx/templates/getting_started/workflow/assets/escn_exporter/mesh.pot index 2651f6969e..98942de51d 100644 --- a/sphinx/templates/getting_started/workflow/assets/escn_exporter/mesh.pot +++ b/sphinx/templates/getting_started/workflow/assets/escn_exporter/mesh.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/assets/escn_exporter/physics.pot b/sphinx/templates/getting_started/workflow/assets/escn_exporter/physics.pot index b78957ac65..da14a315ee 100644 --- a/sphinx/templates/getting_started/workflow/assets/escn_exporter/physics.pot +++ b/sphinx/templates/getting_started/workflow/assets/escn_exporter/physics.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/assets/escn_exporter/skeleton.pot b/sphinx/templates/getting_started/workflow/assets/escn_exporter/skeleton.pot index b34e1de33a..47854f60ca 100644 --- a/sphinx/templates/getting_started/workflow/assets/escn_exporter/skeleton.pot +++ b/sphinx/templates/getting_started/workflow/assets/escn_exporter/skeleton.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/assets/import_process.pot b/sphinx/templates/getting_started/workflow/assets/import_process.pot index c47ebcbf37..9006645b57 100644 --- a/sphinx/templates/getting_started/workflow/assets/import_process.pot +++ b/sphinx/templates/getting_started/workflow/assets/import_process.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/assets/importing_audio_samples.pot b/sphinx/templates/getting_started/workflow/assets/importing_audio_samples.pot index 975065b033..a8a714ae4d 100644 --- a/sphinx/templates/getting_started/workflow/assets/importing_audio_samples.pot +++ b/sphinx/templates/getting_started/workflow/assets/importing_audio_samples.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/assets/importing_images.pot b/sphinx/templates/getting_started/workflow/assets/importing_images.pot index 62821d003b..6d1e5a1cfa 100644 --- a/sphinx/templates/getting_started/workflow/assets/importing_images.pot +++ b/sphinx/templates/getting_started/workflow/assets/importing_images.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/assets/importing_scenes.pot b/sphinx/templates/getting_started/workflow/assets/importing_scenes.pot index 28632a028f..5f0506abba 100644 --- a/sphinx/templates/getting_started/workflow/assets/importing_scenes.pot +++ b/sphinx/templates/getting_started/workflow/assets/importing_scenes.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/assets/importing_translations.pot b/sphinx/templates/getting_started/workflow/assets/importing_translations.pot index 1f493d6a8f..69f0f99598 100644 --- a/sphinx/templates/getting_started/workflow/assets/importing_translations.pot +++ b/sphinx/templates/getting_started/workflow/assets/importing_translations.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/assets/index.pot b/sphinx/templates/getting_started/workflow/assets/index.pot index 487b6c3b8a..cffbc673ae 100644 --- a/sphinx/templates/getting_started/workflow/assets/index.pot +++ b/sphinx/templates/getting_started/workflow/assets/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/best_practices/autoloads_versus_internal_nodes.pot b/sphinx/templates/getting_started/workflow/best_practices/autoloads_versus_internal_nodes.pot index 86c600fb24..48cf432901 100644 --- a/sphinx/templates/getting_started/workflow/best_practices/autoloads_versus_internal_nodes.pot +++ b/sphinx/templates/getting_started/workflow/best_practices/autoloads_versus_internal_nodes.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/best_practices/data_preferences.pot b/sphinx/templates/getting_started/workflow/best_practices/data_preferences.pot index 9e1fa87646..590d9501e7 100644 --- a/sphinx/templates/getting_started/workflow/best_practices/data_preferences.pot +++ b/sphinx/templates/getting_started/workflow/best_practices/data_preferences.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/best_practices/godot_interfaces.pot b/sphinx/templates/getting_started/workflow/best_practices/godot_interfaces.pot index 68b0642a57..25af315f6f 100644 --- a/sphinx/templates/getting_started/workflow/best_practices/godot_interfaces.pot +++ b/sphinx/templates/getting_started/workflow/best_practices/godot_interfaces.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -72,59 +72,59 @@ msgstr "" msgid "Nodes likewise have an alternative access point: the SceneTree." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:242 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:244 msgid "Accessing data or logic from an object" msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:244 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:246 msgid "Godot's scripting API is duck-typed. This means that if a script executes an operation, Godot doesn't validate that it supports the operation by **type**. It instead checks that the object **implements** the individual method." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:248 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:250 msgid "For example, the :ref:`CanvasItem ` class has a ``visible`` property. All properties exposed to the scripting API are in fact a setter and getter pair bound to a name. If one tried to access :ref:`CanvasItem.visible `, then Godot would do the following checks, in order:" msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:254 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:256 msgid "If the object has a script attached, it will attempt to set the property through the script. This leaves open the opportunity for scripts to override a property defined on a base object by overriding the setter method for the property." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:259 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:261 msgid "If the script does not have the property, it performs a HashMap lookup in the ClassDB for the \"visible\" property against the CanvasItem class and all of its inherited types. If found, it will call the bound setter or getter. For more information about HashMaps, see the :ref:`data preferences ` docs." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:265 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:267 msgid "If not found, it does an explicit check to see if the user wants to access the \"script\" or \"meta\" properties." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:268 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:270 msgid "If not, it checks for a ``_set``/``_get`` implementation (depending on type of access) in the CanvasItem and its inherited types. These methods can execute logic that gives the impression that the Object has a property. This is also the case with the ``_get_property_list`` method." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:273 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:275 msgid "Note that this happens even for non-legal symbol names such as in the case of :ref:`TileSet `'s \"1/tile_name\" property. This refers to the name of the tile with ID 1, i.e. :ref:`TileSet.tile_get_name(1) `." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:278 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:280 msgid "As a result, this duck-typed system can locate a property either in the script, the object's class, or any class that object inherits, but only for things which extend Object." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:282 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:284 msgid "Godot provides a variety of options for performing runtime checks on these accesses:" msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:285 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:287 msgid "A duck-typed property access. These will property check (as described above). If the operation isn't supported by the object, execution will halt." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:313 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:315 msgid "A method check. In the case of :ref:`CanvasItem.visible `, one can access the methods, ``set_visible`` and ``is_visible`` like any other method." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:445 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:447 msgid "Outsource the access to a :ref:`FuncRef `. These may be useful in cases where one needs the max level of freedom from dependencies. In this case, one relies on an external context to setup the method." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:504 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:506 msgid "These strategies contribute to Godot's flexible design. Between them, users have a breadth of tools to meet their specific needs." msgstr "" diff --git a/sphinx/templates/getting_started/workflow/best_practices/godot_notifications.pot b/sphinx/templates/getting_started/workflow/best_practices/godot_notifications.pot index bc9fe86887..c6dddd377d 100644 --- a/sphinx/templates/getting_started/workflow/best_practices/godot_notifications.pot +++ b/sphinx/templates/getting_started/workflow/best_practices/godot_notifications.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/best_practices/index.pot b/sphinx/templates/getting_started/workflow/best_practices/index.pot index cbe61e9233..4b78e2fe38 100644 --- a/sphinx/templates/getting_started/workflow/best_practices/index.pot +++ b/sphinx/templates/getting_started/workflow/best_practices/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/best_practices/introduction_best_practices.pot b/sphinx/templates/getting_started/workflow/best_practices/introduction_best_practices.pot index 3f5ea7cc2c..d472d30f40 100644 --- a/sphinx/templates/getting_started/workflow/best_practices/introduction_best_practices.pot +++ b/sphinx/templates/getting_started/workflow/best_practices/introduction_best_practices.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/best_practices/logic_preferences.pot b/sphinx/templates/getting_started/workflow/best_practices/logic_preferences.pot index 0b4a9275b6..a544c373bf 100644 --- a/sphinx/templates/getting_started/workflow/best_practices/logic_preferences.pot +++ b/sphinx/templates/getting_started/workflow/best_practices/logic_preferences.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -33,7 +33,7 @@ msgid "In GDScript, there exists the global :ref:`preload ` method, loads a resource only when it reaches the load statement. That is, it will load a resource in-place which can cause slowdowns then it occurs in the middle of sensitive processes. The ``load`` function is also an alias for :ref:`ResourceLoader.load(path) ` which is accessible to *all* scripting languages." +msgid "Its counterpart, the :ref:`load ` method, loads a resource only when it reaches the load statement. That is, it will load a resource in-place which can cause slowdowns when it occurs in the middle of sensitive processes. The ``load`` function is also an alias for :ref:`ResourceLoader.load(path) ` which is accessible to *all* scripting languages." msgstr "" #: ../../docs/getting_started/workflow/best_practices/logic_preferences.rst:24 diff --git a/sphinx/templates/getting_started/workflow/best_practices/node_alternatives.pot b/sphinx/templates/getting_started/workflow/best_practices/node_alternatives.pot index 2df1c76e43..a8810bf365 100644 --- a/sphinx/templates/getting_started/workflow/best_practices/node_alternatives.pot +++ b/sphinx/templates/getting_started/workflow/best_practices/node_alternatives.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/best_practices/scene_organization.pot b/sphinx/templates/getting_started/workflow/best_practices/scene_organization.pot index 8b6b1eebb7..18482ece01 100644 --- a/sphinx/templates/getting_started/workflow/best_practices/scene_organization.pot +++ b/sphinx/templates/getting_started/workflow/best_practices/scene_organization.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/best_practices/scenes_versus_scripts.pot b/sphinx/templates/getting_started/workflow/best_practices/scenes_versus_scripts.pot index f2ae51b859..f1e61a8fe0 100644 --- a/sphinx/templates/getting_started/workflow/best_practices/scenes_versus_scripts.pot +++ b/sphinx/templates/getting_started/workflow/best_practices/scenes_versus_scripts.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/best_practices/what_are_godot_classes.pot b/sphinx/templates/getting_started/workflow/best_practices/what_are_godot_classes.pot index a395f5e199..560cd987de 100644 --- a/sphinx/templates/getting_started/workflow/best_practices/what_are_godot_classes.pot +++ b/sphinx/templates/getting_started/workflow/best_practices/what_are_godot_classes.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/export/android_custom_build.pot b/sphinx/templates/getting_started/workflow/export/android_custom_build.pot index 5377a4aa35..6d1310c860 100644 --- a/sphinx/templates/getting_started/workflow/export/android_custom_build.pot +++ b/sphinx/templates/getting_started/workflow/export/android_custom_build.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -92,171 +92,183 @@ msgstr "" msgid "Look on that page for the *Command line tools only* section. Currently, they are listed under *Download Options*. Scroll down a bit until you see them." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:70 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:68 msgid "Download the ZIP file for your platform, there will be a single ``tools`` folder inside:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:75 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:73 msgid "This may appear a little confusing, but be sure to follow these instructions carefully:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:78 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:76 msgid "Create a new folder anywhere you want named ``android-sdk`` (it **must** be an empty directory). On Windows, the following path is usually good enough:" msgstr "" #: ../../docs/getting_started/workflow/export/android_custom_build.rst:85 -msgid "Unzip the Android SDK ZIP file you just downloaded there. The only thing in the directory you created in the previous step should be the ``tools`` folder with its contents inside, like this:" +msgid "If you already have an android-sdk folder, normally located in ``%LOCALAPPDATA%\\Android\\Sdk``, then use this folder instead of creating an empty ``android-sdk`` folder." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:97 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:88 +msgid "Unzip the Android SDK ZIP file into the ``android-sdk`` folder. This folder should now contain the unzipped folder called ``tools``. Rename ``tools`` to ``latest``. Finally, create an empty folder named ``cmdline-tools`` and place ``latest`` into it. Your final directory structure should look like this :" +msgstr "" + +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:100 +msgid "We need to setup the directory structure this way for the sdkmanager (inside the bin folder) to work." +msgstr "" + +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:103 msgid "Accepting the licenses" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:99 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:105 msgid "To be able to use the Android SDK tools, Google requires you to accept its licenses." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:102 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:108 msgid "To do this, the ``sdkmanager`` must be executed from the command line with a special argument. Navigate to the ``tools/bin`` directory inside the SDK folder (instructions provided for Windows users, as Linux and macOS users are expected to understand how command line navigation works):" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:109 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:115 msgid "Then open a command line window:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:113 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:119 msgid "In there, run ``sdkmanager --licenses``:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:117 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:123 msgid "This will ask you to accept several licenses, just write ``y`` and press :kbd:`Enter` on every of them until it's done." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:120 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:126 msgid "Afterwards, install the platform tools (this is required to install ``adb``):" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:126 -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:210 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:130 +msgid "If you get an error saying ``Warning: Could not create settings``, try ``./sdkmanager --sdk_root=../../ --licenses`` or ``./sdkmanager --sdk_root=../../ platform-tools``. These must be executed inside the ``/tools/bin/`` folder because the path for ``--sdk_root`` is relative." +msgstr "" + +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:133 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:217 msgid "Generating the keystore" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:128 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:135 msgid "Once the *platform tools* are installed, the last step is to generate a debug keystore (this is needed to build). Go up two folders by writing:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:135 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:142 msgid "(or open a new shell in the ``android-sdk`` folder)." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:137 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:144 msgid "And you need to input the following line (on Linux and macOS, this should work out of the box, for Windows there are further instructions below):" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:144 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:151 msgid "On Windows, the full path to Java should be provided. You need to add ``&`` at the beginning of the line if you use PowerShell; it's not needed for the regular ``cmd.exe`` console." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:148 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:155 msgid "To make it clearer, here is an capture of a line that works on PowerShell (by adding ``&`` and the full Java path before ``keytool.exe``). Again, keep in mind that you need Java installed:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:154 -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:165 -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:237 -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:248 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:161 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:172 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:244 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:255 msgid "(right-click and open the image in a new tab if this appears too small)" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:158 -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:241 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:165 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:248 msgid "Setting up Godot" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:160 -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:243 -msgid "Go to the **Editor Settings** and set up a few fields in **Export > Android**. Make sure they look like the following:" -msgstr "" - #: ../../docs/getting_started/workflow/export/android_custom_build.rst:167 #: ../../docs/getting_started/workflow/export/android_custom_build.rst:250 +msgid "Go to the **Editor Settings** and set up a few fields in **Export > Android**. Make sure they look like the following:" +msgstr "" + +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:174 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:257 msgid "As it can be seen, most paths are inside either the ``android-sdk`` folder you originally created, or inside the Java install. For Linux and macOS users, ``jarsigner`` is often located in ``/usr/bin``." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:171 -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:254 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:178 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:261 msgid "With this, you should be all set." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:175 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:182 msgid "Install the Android SDK (Android Studio)" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:177 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:184 msgid "If you just finished installing the SDK via the command-line tools, feel free to skip this section entirely. The Android Studio path is easier, but it takes up more disk space. It's also useful if you plan to develop Godot for Android (modify the Java source code) or if you plan to develop add-ons." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:183 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:190 msgid "Download and install Android Studio" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:185 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:192 msgid "Download the latest version of Android Studio. When installing, pay attention to where the *android-sdk* directory is created." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:190 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:197 msgid "This is funny, the path it proposes by default contains whitespace (and complains about it). It must be changed." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:192 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:199 msgid "In any case, it's better to select a different path inside your user folders. The recommended one is usually:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:199 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:206 msgid "Replace *yourusername* by your actual user name. Once it's correct, select from the list above in the same screen:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:202 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:209 msgid "Android SDK" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:203 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:210 msgid "Android SDK Platform" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:205 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:212 msgid "The rest are not needed, because the build system will fetch them itself. After selecting them, go on with the installation." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:212 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:219 msgid "Go to the folder where you installed ``android-sdk`` in the previous step, use File Explorer and open a command line tool there:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:217 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:224 msgid "The actual command line to type is the following. On Linux and macOS, it should work out of the box, but on Windows, it needs additional details (keep reading afterwards)." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:225 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:232 msgid "On Windows, the full path to Java should be provided (and ``&`` needs to be added at the beginning on the line if you use PowerShell, it's not needed for the regular ``cmd.exe`` console). Don't worry, at least by using Android Studio on Windows, Java comes bundled with it." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:230 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:237 msgid "To make it clearer, here is a screen capture of a line that works on PowerShell (by adding ``&`` and the full Java Path to ``keytool.exe``; remove ``&`` if you use ``cmd.exe``). It uses a path to the Java version that comes with Android Studio:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:258 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:265 msgid "Enabling the custom build and exporting" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:260 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:267 msgid "When setting up the Android project in the **Project > Export** dialog, **Custom Build** needs to be enabled:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:265 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:272 msgid "From now on, attempting to export the project or one-click deploy will call the `Gradle `__ build system to generate fresh templates (this window will appear every time):" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:271 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:278 msgid "The templates built will be used automatically afterwards, so no further configuration is needed." msgstr "" diff --git a/sphinx/templates/getting_started/workflow/export/changing_application_icon_for_windows.pot b/sphinx/templates/getting_started/workflow/export/changing_application_icon_for_windows.pot index e21c02e9ba..9b4b78b347 100644 --- a/sphinx/templates/getting_started/workflow/export/changing_application_icon_for_windows.pot +++ b/sphinx/templates/getting_started/workflow/export/changing_application_icon_for_windows.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/export/exporting_for_android.pot b/sphinx/templates/getting_started/workflow/export/exporting_for_android.pot index 6f407dd63e..6757b890b2 100644 --- a/sphinx/templates/getting_started/workflow/export/exporting_for_android.pot +++ b/sphinx/templates/getting_started/workflow/export/exporting_for_android.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -129,7 +129,7 @@ msgid "It's important to adhere to some rules when designing adaptive icons. `Go msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_android.rst:84 -msgid "The most important adaptive icon design rule is to have your icon critical elements inside the safe zone: a centered circle with a radius of 66dp (264 pixels on ``xxxhdpi``) to avoid being clipped by the launcher." +msgid "The most important adaptive icon design rule is to have your icon critical elements inside the safe zone: a centered circle with a diameter of 66dp (264 pixels on ``xxxhdpi``) to avoid being clipped by the launcher." msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_android.rst:86 diff --git a/sphinx/templates/getting_started/workflow/export/exporting_for_dedicated_servers.pot b/sphinx/templates/getting_started/workflow/export/exporting_for_dedicated_servers.pot new file mode 100644 index 0000000000..e8755103e8 --- /dev/null +++ b/sphinx/templates/getting_started/workflow/export/exporting_for_dedicated_servers.pot @@ -0,0 +1,106 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2020, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0) +# This file is distributed under the same license as the Godot Engine package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine latest\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:4 +msgid "Exporting for dedicated servers" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:6 +msgid "If you want to run a dedicated server for your project on a machine that doesn't have a GPU or display server available, you'll need to use a server build of Godot." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:10 +msgid "Platform support" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:12 +msgid "**Linux:** `Download an official Linux server binary `__. To compile a server binary from source, follow instructions in :ref:`doc_compiling_for_linuxbsd`." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:15 +msgid "**macOS:** :ref:`Compile a server binary from source for macOS `." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:16 +msgid "**Windows:** There is no dedicated server build for Windows yet. As an alternative, you can use the ``--no-window`` command-line argument to prevent Godot from spawning a window." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:20 +msgid "If your project uses C#, you'll have to use a Mono-enabled server binary." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:23 +msgid "\"Headless\" versus \"server\" binaries" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:25 +msgid "The `server download page `__ offers two kinds of binaries with several differences." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:28 +msgid "**Server:** Use this one for running dedicated servers. It does not contain editor functionality, and is therefore smaller and more optimized." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:31 +msgid "**Headless:** This binary contains editor functionality and is intended to be used for exporting projects. This binary *can* be used to run dedicated servers, but it's not recommended as it's larger and less optimized." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:36 +msgid "Exporting a PCK file" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:38 +msgid "Once you've downloaded a server binary, you should export a PCK file containing your project data. It's recommended to create a Linux export preset for this purpose. After creating the export preset, click **Export PCK/ZIP** at the bottom of the Export dialog then choose a destination path." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:43 +msgid "The **Export With Debug** checkbox in the file dialog has no bearing on the final PCK file, so you can leave it as-is." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:46 +msgid "See :ref:`doc_exporting_projects` for more information." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:50 +msgid "The PCK file will include resources not normally needed by the server, such as textures and sounds. This means the PCK file will be larger than it could possibly be. Support for stripping unneeded resources from a PCK for server usage is planned in a future Godot release." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:55 +msgid "On the bright side, this allows the same PCK file to be used both by a client and dedicated server build. This can be useful if you want to ship a single archive that can be used both as a client and dedicated server." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:60 +msgid "Preparing the server distribution" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:62 +msgid "After downloading or compiling a server binary, you should now place it in the same folder as the PCK file you've exported. The server binary should have the same name as the PCK (excluding the extension). This lets Godot detect and use the PCK file automatically. If you want to start a server with a PCK that has a different name, you can specify the path to the PCK file using the ``--main-pack`` command-line argument::" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:72 +msgid "Next steps" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:74 +msgid "On Linux, to make your dedicated server restart after a crash or system reboot, you can `create a systemd service `__. This also lets you view server logs in a more convenient fashion, with automatic log rotation provided by systemd." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:80 +msgid "If you have experience with containers, you could also look into wrapping your dedicated server in a `Docker `__ container. This way, it can be used more easily in an automatic scaling setup (which is outside the scope of this tutorial)." +msgstr "" + diff --git a/sphinx/templates/getting_started/workflow/export/exporting_for_ios.pot b/sphinx/templates/getting_started/workflow/export/exporting_for_ios.pot index 34dcfe2bd8..a7578d808f 100644 --- a/sphinx/templates/getting_started/workflow/export/exporting_for_ios.pot +++ b/sphinx/templates/getting_started/workflow/export/exporting_for_ios.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/export/exporting_for_pc.pot b/sphinx/templates/getting_started/workflow/export/exporting_for_pc.pot index 9e242f4049..aa466c8351 100644 --- a/sphinx/templates/getting_started/workflow/export/exporting_for_pc.pot +++ b/sphinx/templates/getting_started/workflow/export/exporting_for_pc.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/export/exporting_for_uwp.pot b/sphinx/templates/getting_started/workflow/export/exporting_for_uwp.pot index b71aa9c5df..95e03f3736 100644 --- a/sphinx/templates/getting_started/workflow/export/exporting_for_uwp.pot +++ b/sphinx/templates/getting_started/workflow/export/exporting_for_uwp.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/export/exporting_for_web.pot b/sphinx/templates/getting_started/workflow/export/exporting_for_web.pot index cd08c9dc0d..a31bcd5614 100644 --- a/sphinx/templates/getting_started/workflow/export/exporting_for_web.pot +++ b/sphinx/templates/getting_started/workflow/export/exporting_for_web.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/export/exporting_pcks.pot b/sphinx/templates/getting_started/workflow/export/exporting_pcks.pot index 12c27520d7..3935298c8e 100644 --- a/sphinx/templates/getting_started/workflow/export/exporting_pcks.pot +++ b/sphinx/templates/getting_started/workflow/export/exporting_pcks.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -161,18 +161,22 @@ msgid "To import a PCK file, one uses a one-liner. Keep in mind, there is no err msgstr "" #: ../../docs/getting_started/workflow/export/exporting_pcks.rst:117 -msgid "If you import a file with the same file path/name as one you already have in your project, the imported one will replace it. This is something to watch out for when creating DLC or mods (solved easily with a tool isolating mods to a specific mods subfolder). However, it is also a way of creating patches for one's own game. A PCK file of this kind can fix the content of a previously loaded PCK." +msgid "By default, if you import a file with the same file path/name as one you already have in your project, the imported one will replace it. This is something to watch out for when creating DLC or mods (solved easily with a tool isolating mods to a specific mods subfolder). However, it is also a way of creating patches for one's own game. A PCK file of this kind can fix the content of a previously loaded PCK." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:124 +#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:123 +msgid "To opt out of this behavior, pass ``false`` as the second argument to :ref:`ProjectSettings.load_resource_pack() `." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:127 msgid "For a C# project, you need to build the DLL and place it in the project directory first. Then, before loading the resource pack, you need to load its DLL as follows: ``Assembly.LoadFile(\"mod.dll\")``" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:129 +#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:132 msgid "Summary" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:131 +#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:134 msgid "This tutorial should illustrate how easy adding mods, patches or DLC to a game is. The most important thing is to identify how one plans to distribute future content for their game and develop a workflow that is customized for that purpose. Godot should make that process smooth regardless of which route a developer pursues." msgstr "" diff --git a/sphinx/templates/getting_started/workflow/export/exporting_projects.pot b/sphinx/templates/getting_started/workflow/export/exporting_projects.pot index d6a7c7dc05..6671e6ca2e 100644 --- a/sphinx/templates/getting_started/workflow/export/exporting_projects.pot +++ b/sphinx/templates/getting_started/workflow/export/exporting_projects.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/export/feature_tags.pot b/sphinx/templates/getting_started/workflow/export/feature_tags.pot index 78f2431e48..a5754d9bbd 100644 --- a/sphinx/templates/getting_started/workflow/export/feature_tags.pot +++ b/sphinx/templates/getting_started/workflow/export/feature_tags.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/export/index.pot b/sphinx/templates/getting_started/workflow/export/index.pot index e81f44019b..aaaf1c11ea 100644 --- a/sphinx/templates/getting_started/workflow/export/index.pot +++ b/sphinx/templates/getting_started/workflow/export/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/export/one-click_deploy.pot b/sphinx/templates/getting_started/workflow/export/one-click_deploy.pot index d614e1f26e..c75feb81db 100644 --- a/sphinx/templates/getting_started/workflow/export/one-click_deploy.pot +++ b/sphinx/templates/getting_started/workflow/export/one-click_deploy.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/index.pot b/sphinx/templates/getting_started/workflow/index.pot index 7e472cc8a1..22c20f8c3c 100644 --- a/sphinx/templates/getting_started/workflow/index.pot +++ b/sphinx/templates/getting_started/workflow/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/project_setup/index.pot b/sphinx/templates/getting_started/workflow/project_setup/index.pot index 0447ad1af3..7a02559818 100644 --- a/sphinx/templates/getting_started/workflow/project_setup/index.pot +++ b/sphinx/templates/getting_started/workflow/project_setup/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/getting_started/workflow/project_setup/project_organization.pot b/sphinx/templates/getting_started/workflow/project_setup/project_organization.pot index 41423aeb48..2a7ae0a4a2 100644 --- a/sphinx/templates/getting_started/workflow/project_setup/project_organization.pot +++ b/sphinx/templates/getting_started/workflow/project_setup/project_organization.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -80,3 +80,23 @@ msgstr "" msgid "Ignoring a folder will also automatically hide it from the FileSystem dock, which can be useful to reduce clutter." msgstr "" +#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:77 +msgid "Case sensitivity" +msgstr "" + +#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:79 +msgid "Windows and recent macOS versions use case-insensitive filesystems by default, whereas Linux distributions use a case-sensitive filesystem by default. This can cause issues after exporting a project, since Godot's PCK virtual filesystem is case-sensitive. To avoid this, it's recommended to stick to ``snake_case`` naming for all files in the project (and lowercase characters in general)." +msgstr "" + +#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:88 +msgid "You can break this rule when style guides say otherwise (such as the C# style guide). Still, be consistent to avoid mistakes." +msgstr "" + +#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:91 +msgid "On Windows 10, to further avoid mistakes related to case sensitivity, you can also make the project folder case-sensitive. After enabling the Windows Subsystem for Linux feature, run the following command in a PowerShell window::" +msgstr "" + +#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:101 +msgid "If you haven't enabled the Windows Subsystem for Linux, you can enter the following line in a PowerShell window *running as Administrator* then reboot when asked::" +msgstr "" + diff --git a/sphinx/templates/index.pot b/sphinx/templates/index.pot index b8fbf38a19..5117183f62 100644 --- a/sphinx/templates/index.pot +++ b/sphinx/templates/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/2d/2d_lights_and_shadows.pot b/sphinx/templates/tutorials/2d/2d_lights_and_shadows.pot index 100e1ea079..b6bc9f27ea 100644 --- a/sphinx/templates/tutorials/2d/2d_lights_and_shadows.pot +++ b/sphinx/templates/tutorials/2d/2d_lights_and_shadows.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/2d/2d_meshes.pot b/sphinx/templates/tutorials/2d/2d_meshes.pot index 5ba322452b..7e83a38068 100644 --- a/sphinx/templates/tutorials/2d/2d_meshes.pot +++ b/sphinx/templates/tutorials/2d/2d_meshes.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/2d/2d_movement.pot b/sphinx/templates/tutorials/2d/2d_movement.pot index d529abbe7b..ece79bfe65 100644 --- a/sphinx/templates/tutorials/2d/2d_movement.pot +++ b/sphinx/templates/tutorials/2d/2d_movement.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/2d/2d_sprite_animation.pot b/sphinx/templates/tutorials/2d/2d_sprite_animation.pot index f333d858d7..2ee8657a9e 100644 --- a/sphinx/templates/tutorials/2d/2d_sprite_animation.pot +++ b/sphinx/templates/tutorials/2d/2d_sprite_animation.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/2d/2d_transforms.pot b/sphinx/templates/tutorials/2d/2d_transforms.pot index f1d7bad7f8..349f50defc 100644 --- a/sphinx/templates/tutorials/2d/2d_transforms.pot +++ b/sphinx/templates/tutorials/2d/2d_transforms.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/2d/canvas_layers.pot b/sphinx/templates/tutorials/2d/canvas_layers.pot index 64b20f2549..ec68f1491e 100644 --- a/sphinx/templates/tutorials/2d/canvas_layers.pot +++ b/sphinx/templates/tutorials/2d/canvas_layers.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/2d/custom_drawing_in_2d.pot b/sphinx/templates/tutorials/2d/custom_drawing_in_2d.pot index 6f1cf4632a..d0682cbdfc 100644 --- a/sphinx/templates/tutorials/2d/custom_drawing_in_2d.pot +++ b/sphinx/templates/tutorials/2d/custom_drawing_in_2d.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/2d/index.pot b/sphinx/templates/tutorials/2d/index.pot index fe91b3b148..6d04eec2e4 100644 --- a/sphinx/templates/tutorials/2d/index.pot +++ b/sphinx/templates/tutorials/2d/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/2d/particle_systems_2d.pot b/sphinx/templates/tutorials/2d/particle_systems_2d.pot index 67b9f46b49..f2d8edc23e 100644 --- a/sphinx/templates/tutorials/2d/particle_systems_2d.pot +++ b/sphinx/templates/tutorials/2d/particle_systems_2d.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/2d/using_tilemaps.pot b/sphinx/templates/tutorials/2d/using_tilemaps.pot index 308d3a4276..16078979f0 100644 --- a/sphinx/templates/tutorials/2d/using_tilemaps.pot +++ b/sphinx/templates/tutorials/2d/using_tilemaps.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -25,7 +25,7 @@ msgid "Introduction" msgstr "" #: ../../docs/tutorials/2d/using_tilemaps.rst:9 -msgid "A tilemap is a grid of tiles used to create a game's layout. There are several benefits to using :ref:`TileMap ` nodes to design your levels. First, they make it possible to draw the layout by \"painting' the tiles onto a grid, which is much faster than placing individual :ref:`Sprite ` nodes one by one. Second, they allow for much larger levels because they are optimized for drawing large numbers of tiles. Finally, you can add collision, occlusion, and navigation shapes to tiles, adding additional functionality to the TileMap." +msgid "A tilemap is a grid of tiles used to create a game's layout. There are several benefits to using :ref:`TileMap ` nodes to design your levels. First, they make it possible to draw the layout by \"painting\" the tiles onto a grid, which is much faster than placing individual :ref:`Sprite ` nodes one by one. Second, they allow for much larger levels because they are optimized for drawing large numbers of tiles. Finally, you can add collision, occlusion, and navigation shapes to tiles, adding additional functionality to the TileMap." msgstr "" #: ../../docs/tutorials/2d/using_tilemaps.rst:21 diff --git a/sphinx/templates/tutorials/3d/3d_rendering_limitations.pot b/sphinx/templates/tutorials/3d/3d_rendering_limitations.pot new file mode 100644 index 0000000000..c36500ba43 --- /dev/null +++ b/sphinx/templates/tutorials/3d/3d_rendering_limitations.pot @@ -0,0 +1,142 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2020, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0) +# This file is distributed under the same license as the Godot Engine package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine latest\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:4 +msgid "3D rendering limitations" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:7 +msgid "Introduction" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:9 +msgid "Due to their focus on performance, real-time rendering engines have many limitations. Godot's renderer is no exception. To work effectively with those limitations, you need to understand them." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:14 +msgid "Texture size limits" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:16 +msgid "On desktops and laptops, textures larger than 8192×8192 may not be supported on older devices. You can check your target GPU's limitations on `GPUinfo.org `__." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:20 +msgid "Mobile GPUs are typically limited to 4096×4096 textures. Also, some mobile GPUs don't support repeating non-power-of-two-sized textures. Therefore, if you want your texture to display correctly on all platforms, you should avoid using textures larger than 4096×4096 and use a power of two size if the texture needs to repeat." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:27 +msgid "Color banding" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:29 +msgid "When using the GLES3 or Vulkan renderers, Godot's 3D engine renders internally in HDR. However, the rendering output will be tonemapped to a low dynamic range so it can be displayed on the screen. This can result in visible banding, especially when using untextured materials. This can also be seen in 2D projects when using smooth gradient textures." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:35 +msgid "There are several ways to alleviate banding. Here are a few examples:" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:37 +msgid "Bake some noise into your textures. This is mainly effective in 2D, e.g. for vignetting effects." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:39 +msgid "Implement a debanding shader as a :ref:`screen-reading shader `. Godot currently doesn't provide a built-in debanding shader, but this may be added in a future release." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:45 +msgid "See `Banding in Games: A Noisy Rant `__ for more details about banding and ways to combat it." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:49 +msgid "Depth buffer precision" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:51 +msgid "To sort objects in 3D space, rendering engines rely on a *depth buffer* (also called *Z-buffer*). This buffer has a finite precision: 24-bit on desktop platforms, sometimes 16-bit on mobile platforms (for performance reasons). If two different objects end up on the same buffer value, then Z-fighting will occur. This will materialize as textures flickering back and forth as the camera moves or rotates." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:58 +msgid "To make the depth buffer more precise over the rendered area, you should *increase* the Camera node's **Near** property. However, be careful: if you set it too high, players will be able to see through nearby geometry. You should also *decrease* the Camera node's **Far** property to the lowest permissible value for your use case, though keep in mind it won't impact precision as much as the **Near** property." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:65 +msgid "If you only need high precision when the player can see far away, you could change it dynamically based on the game conditions. For instance, if the player enters an airplane, the **Near** property can be temporarily increased to avoid Z-fighting in the distance. It can then be decreased once the player leaves the airplane." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:71 +msgid "Depending on the scene and viewing conditions, you may also be able to move the Z-fighting objects further apart without the difference being visible to the player." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:76 +msgid "Transparency sorting" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:78 +msgid "In Godot, transparent materials are drawn after opaque materials. Transparent objects are sorted back to front before being drawn based on the Node3D's position, not the vertex position in world space. Due to this, overlapping objects may often be sorted out of order. To fix improperly sorted objects, tweak the material's :ref:`Render Priority ` property. This will force specific materials to appear in front or behind of other transparent materials. Even then, this may not always be sufficient." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:86 +msgid "Some rendering engines feature *order-independent transparency* techniques to alleviate this, but this is costly on the GPU. Godot currently doesn't provide this feature. There are still several ways to avoid this problem:" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:90 +msgid "Only make materials transparent if you actually need it. If a material only has a small transparent part, consider splitting it into a separate material. This will allow the opaque part to cast shadows and may also improve performance." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:95 +msgid "If you want a material to fade with distance, use the SpatialMaterial distance fade mode **Pixel Dither** or **Object Dither** instead of **PixelAlpha**. This will make the material opaque. This way, it can also cast shadows." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:101 +msgid "Multi-sample antialiasing" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:103 +msgid "Multi-sample antialiasing (MSAA) takes multiple *coverage* samples at the edges of polygons when rendering objects. It does not increase the number of *color* samples used to render a scene. Here's what this means in practice:" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:107 +msgid "Edges of meshes will be smoothed out nicely (as well as supersampling would)." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:108 +msgid "Transparent materials that use *alpha testing* (1-bit transparency) won't be smoothed out." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:109 +msgid "Specular aliasing (\"sparkles\" that appear on reflective surfaces) won't be reduced." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:111 +msgid "There are several ways to work around this limitation depending on your performance budget:" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:113 +msgid "To make specular aliasing less noticeable, open the Project Settings and enable **Rendering > Quality > Screen Space Filters > Screen Space Roughness Limiter**. This filter has a moderate cost on performance. It should be enabled only if you actually need it." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:118 +msgid "Enable FXAA in addition to (or instead of) MSAA. Since FXAA is a screen-space antialiasing method, it will smooth out anything. As a downside, it will also make the scene appear blurrier, especially at resolutions below 1440p." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:122 +msgid "Render the scene at a higher resolution, then display it in a ViewportTexture that matches the window size. Make sure to enable **Filter** on the ViewportTexture flags. This technique is called *supersampling* and is very slow. Its use is generally only recommended for offline rendering." +msgstr "" + diff --git a/sphinx/templates/tutorials/3d/baked_lightmaps.pot b/sphinx/templates/tutorials/3d/baked_lightmaps.pot index 4667f3c4f1..e21ff14740 100644 --- a/sphinx/templates/tutorials/3d/baked_lightmaps.pot +++ b/sphinx/templates/tutorials/3d/baked_lightmaps.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/csg_tools.pot b/sphinx/templates/tutorials/3d/csg_tools.pot index e55b89fc40..dfb5f9ec8b 100644 --- a/sphinx/templates/tutorials/3d/csg_tools.pot +++ b/sphinx/templates/tutorials/3d/csg_tools.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -97,7 +97,7 @@ msgid "CSGPolygon" msgstr "" #: ../../docs/tutorials/3d/csg_tools.rst:62 -msgid "The :ref:`CSGPolygon ` node extrude along a Polygon drawn in 2D (in X,Y coordinates) in the following ways:" +msgid "The :ref:`CSGPolygon ` node extrude along a Polygon drawn in 2D (in X, Y coordinates) in the following ways:" msgstr "" #: ../../docs/tutorials/3d/csg_tools.rst:65 diff --git a/sphinx/templates/tutorials/3d/environment_and_post_processing.pot b/sphinx/templates/tutorials/3d/environment_and_post_processing.pot index 97eaf6c776..5ff47b2d8f 100644 --- a/sphinx/templates/tutorials/3d/environment_and_post_processing.pot +++ b/sphinx/templates/tutorials/3d/environment_and_post_processing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/fps_tutorial/index.pot b/sphinx/templates/tutorials/3d/fps_tutorial/index.pot index 7a6c21e672..684e34c20e 100644 --- a/sphinx/templates/tutorials/3d/fps_tutorial/index.pot +++ b/sphinx/templates/tutorials/3d/fps_tutorial/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/fps_tutorial/part_five.pot b/sphinx/templates/tutorials/3d/fps_tutorial/part_five.pot index 0282ebffde..534bdc0707 100644 --- a/sphinx/templates/tutorials/3d/fps_tutorial/part_five.pot +++ b/sphinx/templates/tutorials/3d/fps_tutorial/part_five.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/fps_tutorial/part_four.pot b/sphinx/templates/tutorials/3d/fps_tutorial/part_four.pot index 7ccd77bb6d..67b6e3457f 100644 --- a/sphinx/templates/tutorials/3d/fps_tutorial/part_four.pot +++ b/sphinx/templates/tutorials/3d/fps_tutorial/part_four.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/fps_tutorial/part_one.pot b/sphinx/templates/tutorials/3d/fps_tutorial/part_one.pot index a6e7c1bc85..74da13ca1d 100644 --- a/sphinx/templates/tutorials/3d/fps_tutorial/part_one.pot +++ b/sphinx/templates/tutorials/3d/fps_tutorial/part_one.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/fps_tutorial/part_six.pot b/sphinx/templates/tutorials/3d/fps_tutorial/part_six.pot index f9c44dfa09..193f40f21b 100644 --- a/sphinx/templates/tutorials/3d/fps_tutorial/part_six.pot +++ b/sphinx/templates/tutorials/3d/fps_tutorial/part_six.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/fps_tutorial/part_three.pot b/sphinx/templates/tutorials/3d/fps_tutorial/part_three.pot index 5a4cbd0a3c..3eba803e41 100644 --- a/sphinx/templates/tutorials/3d/fps_tutorial/part_three.pot +++ b/sphinx/templates/tutorials/3d/fps_tutorial/part_three.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/fps_tutorial/part_two.pot b/sphinx/templates/tutorials/3d/fps_tutorial/part_two.pot index 0a050edf9c..0ff5ea8fe5 100644 --- a/sphinx/templates/tutorials/3d/fps_tutorial/part_two.pot +++ b/sphinx/templates/tutorials/3d/fps_tutorial/part_two.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/gi_probes.pot b/sphinx/templates/tutorials/3d/gi_probes.pot index 2d6ee9e25a..2e875f9797 100644 --- a/sphinx/templates/tutorials/3d/gi_probes.pot +++ b/sphinx/templates/tutorials/3d/gi_probes.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/high_dynamic_range.pot b/sphinx/templates/tutorials/3d/high_dynamic_range.pot index f1c3b8ef6f..b1c2476eb6 100644 --- a/sphinx/templates/tutorials/3d/high_dynamic_range.pot +++ b/sphinx/templates/tutorials/3d/high_dynamic_range.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/index.pot b/sphinx/templates/tutorials/3d/index.pot index 96f8631b13..7b30cc3dfe 100644 --- a/sphinx/templates/tutorials/3d/index.pot +++ b/sphinx/templates/tutorials/3d/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/introduction_to_3d.pot b/sphinx/templates/tutorials/3d/introduction_to_3d.pot index 99319ef3cb..cac3d4f612 100644 --- a/sphinx/templates/tutorials/3d/introduction_to_3d.pot +++ b/sphinx/templates/tutorials/3d/introduction_to_3d.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -37,7 +37,7 @@ msgid ":ref:`Node2D ` is the base node for 2D. :ref:`Control `, or as 3 :ref:`Vector3 ` members representing location, Euler rotation (x,y and z angles) and scale." +msgid "Spatial nodes have a local transform, which is relative to the parent node (as long as the parent node is also of **or inherits from** the type Spatial). This transform can be accessed as a 4×3 :ref:`Transform `, or as 3 :ref:`Vector3 ` members representing location, Euler rotation (X, Y and Z angles) and scale." msgstr "" #: ../../docs/tutorials/3d/introduction_to_3d.rst:39 @@ -145,7 +145,7 @@ msgid "Space and manipulation gizmos" msgstr "" #: ../../docs/tutorials/3d/introduction_to_3d.rst:152 -msgid "Moving objects in the 3D view is done through the manipulator gizmos. Each axis is represented by a color: Red, Green, Blue represent X,Y,Z respectively. This convention applies to the grid and other gizmos too (and also to the shader language, ordering of components for Vector3,Color,etc.)." +msgid "Moving objects in the 3D view is done through the manipulator gizmos. Each axis is represented by a color: Red, Green, Blue represent X, Y, Z respectively. This convention applies to the grid and other gizmos too (and also to the shader language, ordering of components for Vector3, Color, etc.)." msgstr "" #: ../../docs/tutorials/3d/introduction_to_3d.rst:160 diff --git a/sphinx/templates/tutorials/3d/lights_and_shadows.pot b/sphinx/templates/tutorials/3d/lights_and_shadows.pot index 32e93e3341..8a9021833d 100644 --- a/sphinx/templates/tutorials/3d/lights_and_shadows.pot +++ b/sphinx/templates/tutorials/3d/lights_and_shadows.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/3d_performance_and_limitations.pot b/sphinx/templates/tutorials/3d/optimizing_3d_performance.pot similarity index 75% rename from sphinx/templates/tutorials/3d/3d_performance_and_limitations.pot rename to sphinx/templates/tutorials/3d/optimizing_3d_performance.pot index 851483e4c0..de522205cb 100644 --- a/sphinx/templates/tutorials/3d/3d_performance_and_limitations.pot +++ b/sphinx/templates/tutorials/3d/optimizing_3d_performance.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,183 +16,187 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:4 -msgid "3D performance and limitations" +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:1 +msgid "optimization" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:7 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:7 +msgid "Optimizing 3D performance" +msgstr "" + +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:10 msgid "Introduction" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:9 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:12 msgid "Godot follows a balanced performance philosophy. In the performance world, there are always trade-offs, which consist of trading speed for usability and flexibility. Some practical examples of this are:" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:13 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:16 msgid "Rendering objects efficiently in high amounts is easy, but when a large scene must be rendered, it can become inefficient. To solve this, visibility computation must be added to the rendering, which makes rendering less efficient, but, at the same time, fewer objects are rendered, so efficiency overall improves." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:18 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:21 msgid "Configuring the properties of every material for every object that needs to be rendered is also slow. To solve this, objects are sorted by material to reduce the costs, but at the same time sorting has a cost." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:22 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:25 msgid "In 3D physics a similar situation happens. The best algorithms to handle large amounts of physics objects (such as SAP) are slow at insertion/removal of objects and ray-casting. Algorithms that allow faster insertion and removal, as well as ray-casting, will not be able to handle as many active objects." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:28 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:31 msgid "And there are many more examples of this! Game engines strive to be general purpose in nature, so balanced algorithms are always favored over algorithms that might be fast in some situations and slow in others.. or algorithms that are fast but make usability more difficult." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:33 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:36 msgid "Godot is not an exception and, while it is designed to have backends swappable for different algorithms, the default ones (or more like, the only ones that are there for now) prioritize balance and flexibility over performance." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:38 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:41 msgid "With this clear, the aim of this tutorial is to explain how to get the maximum performance out of Godot." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:42 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:45 msgid "Rendering" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:44 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:47 msgid "3D rendering is one of the most difficult areas to get performance from, so this section will have a list of tips." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:48 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:51 msgid "Reuse shaders and materials" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:50 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:53 msgid "The Godot renderer is a little different to what is out there. It's designed to minimize GPU state changes as much as possible. :ref:`class_SpatialMaterial` does a good job at reusing materials that need similar shaders but, if custom shaders are used, make sure to reuse them as much as possible. Godot's priorities will be like this:" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:57 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:60 msgid "**Reusing Materials**: The fewer different materials in the scene, the faster the rendering will be. If a scene has a huge amount of objects (in the hundreds or thousands) try reusing the materials or in the worst case use atlases." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:61 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:64 msgid "**Reusing Shaders**: If materials can't be reused, at least try to re-use shaders (or SpatialMaterials with different parameters but the same configuration)." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:65 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:68 msgid "If a scene has, for example, 20.000 objects with 20.000 different materials each, rendering will be slow. If the same scene has 20.000 objects, but only uses 100 materials, rendering will be blazingly fast." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:71 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:74 msgid "Pixel cost vs vertex cost" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:73 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:76 msgid "It is a common thought that the lower the number of polygons in a model, the faster it will be rendered. This is *really* relative and depends on many factors." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:77 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:80 msgid "On a modern PC and console, vertex cost is low. GPUs originally only rendered triangles, so all the vertices:" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:80 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:83 msgid "Had to be transformed by the CPU (including clipping)." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:82 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:85 msgid "Had to be sent to the GPU memory from the main RAM." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:84 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:87 msgid "Nowadays, all this is handled inside the GPU, so the performance is extremely high. 3D artists usually have the wrong feeling about polycount performance because 3D DCCs (such as Blender, Max, etc.) need to keep geometry in CPU memory in order for it to be edited, reducing actual performance. Truth is, a model rendered by a 3D engine is much more optimal than how 3D DCCs display them." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:91 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:94 msgid "On mobile devices, the story is different. PC and Console GPUs are brute-force monsters that can pull as much electricity as they need from the power grid. Mobile GPUs are limited to a tiny battery, so they need to be a lot more power efficient." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:96 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:99 msgid "To be more efficient, mobile GPUs attempt to avoid *overdraw*. This means, the same pixel on the screen being rendered (as in, with lighting calculation, etc.) more than once. Imagine a town with several buildings, GPUs don't know what is visible and what is hidden until they draw it. A house might be drawn and then another house in front of it (rendering happened twice for the same pixel!). PC GPUs normally don't care much about this and just throw more pixel processors to the hardware to increase performance (but this also increases power consumption)." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:106 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:109 msgid "On mobile, pulling more power is not an option, so a technique called \"Tile Based Rendering\" is used (almost every mobile hardware uses a variant of it), which divides the screen into a grid. Each cell keeps the list of triangles drawn to it and sorts them by depth to minimize *overdraw*. This technique improves performance and reduces power consumption, but takes a toll on vertex performance. As a result, fewer vertices and triangles can be processed for drawing." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:114 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:117 msgid "Generally, this is not so bad, but there is a corner case on mobile that must be avoided, which is to have small objects with a lot of geometry within a small portion of the screen. This forces mobile GPUs to put a lot of strain on a single screen cell, considerably decreasing performance (as all the other cells must wait for it to complete in order to display the frame)." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:121 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:124 msgid "To make it short, do not worry about vertex count so much on mobile, but avoid concentration of vertices in small parts of the screen. If, for example, a character, NPC, vehicle, etc. is far away (so it looks tiny), use a smaller level of detail (LOD) model instead." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:126 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:129 msgid "An extra situation where vertex cost must be considered is objects that have extra processing per vertex, such as:" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:129 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:132 msgid "Skinning (skeletal animation)" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:130 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:133 msgid "Morphs (shape keys)" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:131 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:134 msgid "Vertex Lit Objects (common on mobile)" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:134 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:137 msgid "Texture compression" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:136 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:139 msgid "Godot offers to compress textures of 3D models when imported (VRAM compression). Video RAM compression is not as efficient in size as PNG or JPG when stored, but increases performance enormously when drawing." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:140 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:143 msgid "This is because the main goal of texture compression is bandwidth reduction between memory and the GPU." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:143 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:146 msgid "In 3D, the shapes of objects depend more on the geometry than the texture, so compression is generally not noticeable. In 2D, compression depends more on shapes inside the textures, so the artifacts resulting from 2D compression are more noticeable." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:148 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:151 msgid "As a warning, most Android devices do not support texture compression of textures with transparency (only opaque), so keep this in mind." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:152 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:155 msgid "Transparent objects" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:154 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:157 msgid "As mentioned before, Godot sorts objects by material and shader to improve performance. This, however, can not be done on transparent objects. Transparent objects are rendered from back to front to make blending with what is behind work. As a result, please try to keep transparent objects to a minimum! If an object has a small section with transparency, try to make that section a separate material." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:162 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:165 msgid "Level of detail (LOD)" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:164 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:167 msgid "As also mentioned before, using objects with fewer vertices can improve performance in some cases. Godot has a simple system to change level of detail, :ref:`GeometryInstance ` based objects have a visibility range that can be defined. Having several GeometryInstance objects in different ranges works as LOD." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:172 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:175 msgid "Use instancing (MultiMesh)" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:174 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:177 msgid "If several identical objects have to be drawn in the same place or nearby, try using :ref:`MultiMesh ` instead. MultiMesh allows the drawing of dozens of thousands of objects at very little performance cost, making it ideal for flocks, grass, particles, etc." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:181 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:184 msgid "Bake lighting" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:183 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:186 msgid "Small lights are usually not a performance issue. Shadows a little more. In general, if several lights need to affect a scene, it's ideal to bake it (:ref:`doc_baked_lightmaps`). Baking can also improve the scene quality by adding indirect light bounces." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:188 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:191 msgid "If working on mobile, baking to texture is recommended, since this method is even faster." msgstr "" diff --git a/sphinx/templates/tutorials/3d/reflection_probes.pot b/sphinx/templates/tutorials/3d/reflection_probes.pot index 3719891503..22a69cc431 100644 --- a/sphinx/templates/tutorials/3d/reflection_probes.pot +++ b/sphinx/templates/tutorials/3d/reflection_probes.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/spatial_material.pot b/sphinx/templates/tutorials/3d/spatial_material.pot index c4efb93725..20bbbfd17a 100644 --- a/sphinx/templates/tutorials/3d/spatial_material.pot +++ b/sphinx/templates/tutorials/3d/spatial_material.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/using_gridmaps.pot b/sphinx/templates/tutorials/3d/using_gridmaps.pot index 2b7809652b..0d92e264e5 100644 --- a/sphinx/templates/tutorials/3d/using_gridmaps.pot +++ b/sphinx/templates/tutorials/3d/using_gridmaps.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/using_multi_mesh_instance.pot b/sphinx/templates/tutorials/3d/using_multi_mesh_instance.pot index e223a52abd..3db2edbca2 100644 --- a/sphinx/templates/tutorials/3d/using_multi_mesh_instance.pot +++ b/sphinx/templates/tutorials/3d/using_multi_mesh_instance.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/using_transforms.pot b/sphinx/templates/tutorials/3d/using_transforms.pot index b47de8d83b..545993e53d 100644 --- a/sphinx/templates/tutorials/3d/using_transforms.pot +++ b/sphinx/templates/tutorials/3d/using_transforms.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -65,7 +65,7 @@ msgid "This could be done by first rotating in *X*, then *Y* and then in *Z*. Al msgstr "" #: ../../docs/tutorials/3d/using_transforms.rst:43 -msgid "Following is a visualization of rotation axes (in X,Y,Z order) in a gimbal (from Wikipedia). As you can see, the orientation of each axis depends on the rotation of the previous one:" +msgid "Following is a visualization of rotation axes (in X, Y, Z order) in a gimbal (from Wikipedia). As you can see, the orientation of each axis depends on the rotation of the previous one:" msgstr "" #: ../../docs/tutorials/3d/using_transforms.rst:47 diff --git a/sphinx/templates/tutorials/3d/vertex_animation/animating_thousands_of_fish.pot b/sphinx/templates/tutorials/3d/vertex_animation/animating_thousands_of_fish.pot index 71285379de..2e1725afa7 100644 --- a/sphinx/templates/tutorials/3d/vertex_animation/animating_thousands_of_fish.pot +++ b/sphinx/templates/tutorials/3d/vertex_animation/animating_thousands_of_fish.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/vertex_animation/controlling_thousands_of_fish.pot b/sphinx/templates/tutorials/3d/vertex_animation/controlling_thousands_of_fish.pot index f84d61200d..6b955a896e 100644 --- a/sphinx/templates/tutorials/3d/vertex_animation/controlling_thousands_of_fish.pot +++ b/sphinx/templates/tutorials/3d/vertex_animation/controlling_thousands_of_fish.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/3d/vertex_animation/index.pot b/sphinx/templates/tutorials/3d/vertex_animation/index.pot index 0d3d77d430..f2c72e7da5 100644 --- a/sphinx/templates/tutorials/3d/vertex_animation/index.pot +++ b/sphinx/templates/tutorials/3d/vertex_animation/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/animation/2d_skeletons.pot b/sphinx/templates/tutorials/animation/2d_skeletons.pot index b7884bd882..2390b8aa19 100644 --- a/sphinx/templates/tutorials/animation/2d_skeletons.pot +++ b/sphinx/templates/tutorials/animation/2d_skeletons.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/animation/animation_tree.pot b/sphinx/templates/tutorials/animation/animation_tree.pot index 280e44e257..b48e091c7a 100644 --- a/sphinx/templates/tutorials/animation/animation_tree.pot +++ b/sphinx/templates/tutorials/animation/animation_tree.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/animation/cutout_animation.pot b/sphinx/templates/tutorials/animation/cutout_animation.pot index 0d773c5532..02bc252623 100644 --- a/sphinx/templates/tutorials/animation/cutout_animation.pot +++ b/sphinx/templates/tutorials/animation/cutout_animation.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/animation/index.pot b/sphinx/templates/tutorials/animation/index.pot index 0f17c3d7d1..dc0efadb37 100644 --- a/sphinx/templates/tutorials/animation/index.pot +++ b/sphinx/templates/tutorials/animation/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/animation/introduction_2d.pot b/sphinx/templates/tutorials/animation/introduction_2d.pot index aae84320f6..2ceada0bbe 100644 --- a/sphinx/templates/tutorials/animation/introduction_2d.pot +++ b/sphinx/templates/tutorials/animation/introduction_2d.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/assetlib/index.pot b/sphinx/templates/tutorials/assetlib/index.pot index c0f6f36d77..813d63320e 100644 --- a/sphinx/templates/tutorials/assetlib/index.pot +++ b/sphinx/templates/tutorials/assetlib/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/assetlib/uploading_to_assetlib.pot b/sphinx/templates/tutorials/assetlib/uploading_to_assetlib.pot index a2519f204f..d9c28d1139 100644 --- a/sphinx/templates/tutorials/assetlib/uploading_to_assetlib.pot +++ b/sphinx/templates/tutorials/assetlib/uploading_to_assetlib.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -53,186 +53,186 @@ msgid "The asset must work. If the asset doesn't run or otherwise doesn't work i msgstr "" #: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:32 -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." +msgid "The asset must have a proper **.gitignore** file. It's important to keep redundant data out of the repository. `Here's a template. `_" msgstr "" #: ../../docs/tutorials/assetlib/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 msgid "The license needs to be correct. The license listed on the asset library must match the license in the repository." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:39 -msgid "Do not set the download commit to \"master\". The asset library validates all assets with a SHA256 hash, so the version hosted on GitHub needs to be *exactly* the same. Instead of \"master\", either specify a commit hash, or tag versions and specify a version number." -msgstr "" - -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:44 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:43 msgid "Use proper English for the name and description of your asset. This includes using correct capitalization, and using full sentences in the description." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:48 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:47 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:52 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:51 msgid "Recommendations" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:54 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:53 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:58 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:57 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:62 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:61 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:67 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:66 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:70 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:69 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:73 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:72 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:78 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:77 msgid "Submitting" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:80 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:79 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:83 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:82 msgid "|image0|" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:85 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:84 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:90 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:89 msgid "**Asset Name**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:90 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:89 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:96 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:95 msgid "**Category**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:93 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:92 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:102 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:101 msgid "**Godot version**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:99 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:98 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:109 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:108 msgid "**Version**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:105 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:104 msgid "The version number of the asset. While you are free to choose and use any versioning scheme that you like, you may want to look into something such as `SemVer `_ if you want your asset's versioning scheme to be clear and consistent. Note that there is also an internal version number, incremented every time the asset download URL is changed or updated." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:114 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:113 msgid "**Repository host**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:112 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:111 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:117 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:116 msgid "**Repository URL**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:117 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:116 msgid "The URL to your asset's files/webpage. This will vary based on your choice of provider, but it should look similar to `https://github.com//`." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:122 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:121 msgid "**Issues URL**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:120 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:119 msgid "The URL to your asset's issue tracker. Again, this will differ from repository host to repository host, but will likely look similar to `https://github.com///issues`. You may leave this field empty if you use your provider's issue tracker, and it's part of the same repository." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:126 -msgid "**Download Commit/Tag**:" -msgstr "" - #: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:125 -msgid "The commit or tag of the asset. For example, `b1d3172f89b86e52465a74f63a74ac84c491d3e1` or `v1.0`. The site computes the actual download URL from this." +msgid "**Download Commit**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:130 -msgid "**Icon URL**:" +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:124 +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:129 +msgid "**Icon URL**:" +msgstr "" + +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:128 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:135 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:134 msgid "**License**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:133 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:132 msgid "The license under which you are distributing the asset. The list includes a variety of free and open-source software licenses, such as GPL (v2 and v3), MIT, BSD and Boost Software License. You can visit `OpenSource.org `_ for a detailed description of each of the listed licenses." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:141 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:140 msgid "**Description**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:138 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:137 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:143 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:142 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:147 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:146 msgid "**Type**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:148 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:147 msgid "Either an image, or a video." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:149 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:148 msgid "**Image/YouTube URL**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:150 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:149 msgid "Either a link to the image, or to a video, hosted on YouTube." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:154 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:153 msgid "**Thumbnail URL**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:152 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:151 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:156 -msgid "Once you are done, hit Submit. Your asset will be entered into the pending queue, which you can visit on the AssetLib `here `_ . 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." +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:155 +msgid "Once you are done, hit Submit. Your asset will be entered into the pending queue, which you can visit on the AssetLib `here `_ . 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 "" diff --git a/sphinx/templates/tutorials/assetlib/using_assetlib.pot b/sphinx/templates/tutorials/assetlib/using_assetlib.pot index 556ed44eed..a2339f627c 100644 --- a/sphinx/templates/tutorials/assetlib/using_assetlib.pot +++ b/sphinx/templates/tutorials/assetlib/using_assetlib.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -101,174 +101,166 @@ msgid "Current version number of the asset." msgstr "" #: ../../docs/tutorials/assetlib/using_assetlib.rst:63 -msgid "Asset's average rating, displayed in stars. (This is currently unimplemented.)" -msgstr "" - -#: ../../docs/tutorials/assetlib/using_assetlib.rst:64 msgid "Asset's category, Godot version, and support status." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:65 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:64 msgid "Asset's original author/submitter." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:66 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:65 msgid "The license the asset is distributed under." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:67 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:66 msgid "The date of the asset's latest edit/update." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:68 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:67 msgid "A textual description of the asset." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:69 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:68 msgid "Links related to the asset (download link, file list, issue tracker)." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:70 -msgid "A SHA-256 hash of the asset, for download validation purposes." -msgstr "" - -#: ../../docs/tutorials/assetlib/using_assetlib.rst:71 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:69 msgid "Images and videos showcasing the asset." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:74 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:72 msgid "Registering and logging in" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:76 +#: ../../docs/tutorials/assetlib/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:81 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:79 msgid "The login/registration page can be accessed from the AssetLib header." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:83 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:81 msgid "|image3|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:85 +#: ../../docs/tutorials/assetlib/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:88 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:86 msgid "|image4|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:90 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:88 msgid "Then, you can use your username and password to log in." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:92 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:90 msgid "|image5|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:94 +#: ../../docs/tutorials/assetlib/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:97 +#: ../../docs/tutorials/assetlib/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:98 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:96 msgid "A list of your uploaded assets." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:99 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:97 msgid "The ability to submit new assets." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:101 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:99 msgid "|image6|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:103 +#: ../../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`." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:107 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:105 msgid "In the editor" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:109 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:107 msgid "You can also access the AssetLib directly from Godot. It is available from two places - in the Project Manager's Templates tab, and inside of a project, from the workspaces list." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:113 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:111 msgid "|image7|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:115 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:113 msgid "|image14|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:117 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:115 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:121 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:119 msgid "|image8|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:123 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:121 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:126 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:124 msgid "Notably, you can only fetch assets for the current version of Godot you are running. Projects, Demos and Templates can be downloaded from 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:134 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:132 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 `_ 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:140 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:138 msgid "When you click on an asset, you will see more information about it." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:142 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:140 msgid "|image9|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:144 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:142 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:148 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:146 msgid "|image10|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:150 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:148 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:153 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:151 msgid "|image11|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:155 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:153 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:161 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:159 msgid "|image12|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:163 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:161 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:168 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:166 msgid "|image13|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:170 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:168 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 "" diff --git a/sphinx/templates/tutorials/assetlib/what_is_assetlib.pot b/sphinx/templates/tutorials/assetlib/what_is_assetlib.pot index 8643369fd9..cb75d0bcf7 100644 --- a/sphinx/templates/tutorials/assetlib/what_is_assetlib.pot +++ b/sphinx/templates/tutorials/assetlib/what_is_assetlib.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/audio/audio_buses.pot b/sphinx/templates/tutorials/audio/audio_buses.pot index 67357286d5..a9d6ac27c2 100644 --- a/sphinx/templates/tutorials/audio/audio_buses.pot +++ b/sphinx/templates/tutorials/audio/audio_buses.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/audio/audio_streams.pot b/sphinx/templates/tutorials/audio/audio_streams.pot index feee1e02b9..3b69442cf3 100644 --- a/sphinx/templates/tutorials/audio/audio_streams.pot +++ b/sphinx/templates/tutorials/audio/audio_streams.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/audio/index.pot b/sphinx/templates/tutorials/audio/index.pot index be74b4bd45..0f59672fac 100644 --- a/sphinx/templates/tutorials/audio/index.pot +++ b/sphinx/templates/tutorials/audio/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/audio/recording_with_microphone.pot b/sphinx/templates/tutorials/audio/recording_with_microphone.pot index 439dc6ab1e..2eedd43fee 100644 --- a/sphinx/templates/tutorials/audio/recording_with_microphone.pot +++ b/sphinx/templates/tutorials/audio/recording_with_microphone.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/audio/sync_with_audio.pot b/sphinx/templates/tutorials/audio/sync_with_audio.pot index 3f63124cea..c68a7ccf65 100644 --- a/sphinx/templates/tutorials/audio/sync_with_audio.pot +++ b/sphinx/templates/tutorials/audio/sync_with_audio.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/content/index.pot b/sphinx/templates/tutorials/content/index.pot index af18eb53c0..46135d0714 100644 --- a/sphinx/templates/tutorials/content/index.pot +++ b/sphinx/templates/tutorials/content/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/content/making_trees.pot b/sphinx/templates/tutorials/content/making_trees.pot index 826e6c7582..ab4e7b6dbe 100644 --- a/sphinx/templates/tutorials/content/making_trees.pot +++ b/sphinx/templates/tutorials/content/making_trees.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/content/procedural_geometry/arraymesh.pot b/sphinx/templates/tutorials/content/procedural_geometry/arraymesh.pot index cd6b613937..362dce3466 100644 --- a/sphinx/templates/tutorials/content/procedural_geometry/arraymesh.pot +++ b/sphinx/templates/tutorials/content/procedural_geometry/arraymesh.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/content/procedural_geometry/immediategeometry.pot b/sphinx/templates/tutorials/content/procedural_geometry/immediategeometry.pot index 1b6ce99a69..d0e828807b 100644 --- a/sphinx/templates/tutorials/content/procedural_geometry/immediategeometry.pot +++ b/sphinx/templates/tutorials/content/procedural_geometry/immediategeometry.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/content/procedural_geometry/index.pot b/sphinx/templates/tutorials/content/procedural_geometry/index.pot index 294b9dcaf3..3185eb59ee 100644 --- a/sphinx/templates/tutorials/content/procedural_geometry/index.pot +++ b/sphinx/templates/tutorials/content/procedural_geometry/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/content/procedural_geometry/meshdatatool.pot b/sphinx/templates/tutorials/content/procedural_geometry/meshdatatool.pot index b3aec55407..fa6a495a5a 100644 --- a/sphinx/templates/tutorials/content/procedural_geometry/meshdatatool.pot +++ b/sphinx/templates/tutorials/content/procedural_geometry/meshdatatool.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/content/procedural_geometry/surfacetool.pot b/sphinx/templates/tutorials/content/procedural_geometry/surfacetool.pot index 5d9962196f..d945818b58 100644 --- a/sphinx/templates/tutorials/content/procedural_geometry/surfacetool.pot +++ b/sphinx/templates/tutorials/content/procedural_geometry/surfacetool.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/debug/index.pot b/sphinx/templates/tutorials/debug/index.pot index fb788c9fbf..c1bc190ef9 100644 --- a/sphinx/templates/tutorials/debug/index.pot +++ b/sphinx/templates/tutorials/debug/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/debug/overview_of_debugging_tools.pot b/sphinx/templates/tutorials/debug/overview_of_debugging_tools.pot index fafc8138ea..f76a7b8a85 100644 --- a/sphinx/templates/tutorials/debug/overview_of_debugging_tools.pot +++ b/sphinx/templates/tutorials/debug/overview_of_debugging_tools.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/gui/bbcode_in_richtextlabel.pot b/sphinx/templates/tutorials/gui/bbcode_in_richtextlabel.pot index cf5851b958..e08a70b650 100644 --- a/sphinx/templates/tutorials/gui/bbcode_in_richtextlabel.pot +++ b/sphinx/templates/tutorials/gui/bbcode_in_richtextlabel.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -261,227 +261,251 @@ msgstr "" msgid "Change {text} color; use name or # format, such as #ff00ff." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:87 -msgid "Built-in color names" +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:85 +msgid "**table**" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:89 -msgid "List of valid color names for the [color=] tag:" +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:85 +msgid "``[table=]{cells}[/table]``" +msgstr "" + +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:85 +msgid "Creates a table with of columns." +msgstr "" + +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:87 +msgid "**cell**" +msgstr "" + +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:87 +msgid "``[cell]{text}[/cell]``" +msgstr "" + +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:87 +msgid "Adds cells with the {text} to the table." msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:91 -msgid "aqua" -msgstr "" - -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:92 -msgid "black" +msgid "Built-in color names" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:93 -msgid "blue" -msgstr "" - -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:94 -msgid "fuchsia" +msgid "List of valid color names for the [color=] tag:" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:95 -msgid "gray" +msgid "aqua" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:96 -msgid "green" +msgid "black" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:97 -msgid "lime" +msgid "blue" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:98 -msgid "maroon" +msgid "fuchsia" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:99 -msgid "navy" +msgid "gray" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:100 -msgid "purple" +msgid "green" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:101 -msgid "red" +msgid "lime" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:102 -msgid "silver" +msgid "maroon" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:103 -msgid "teal" +msgid "navy" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:104 -msgid "white" +msgid "purple" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:105 -msgid "yellow" +msgid "red" +msgstr "" + +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:106 +msgid "silver" +msgstr "" + +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:107 +msgid "teal" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:108 -msgid "Hexadecimal color codes" +msgid "white" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:110 -msgid "For opaque RGB colors, any valid 6-digit hexadecimal code is supported, e.g. ``[color=#ffffff]white[/color]``." +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:109 +msgid "yellow" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:112 -msgid "For transparent RGB colors, any 8-digit hexadecimal code can be used, e.g. ``[color=#88ffffff]translucent white[/color]``. In this case, note that the alpha channel is the **first** component of the color code, not the last one." +msgid "Hexadecimal color codes" +msgstr "" + +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:114 +msgid "For opaque RGB colors, any valid 6-digit hexadecimal code is supported, e.g. ``[color=#ffffff]white[/color]``." msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:116 -msgid "Image vertical offset" -msgstr "" - -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:118 -msgid "You use a custom font for your image in order to align it vertically." +msgid "For transparent RGB colors, any 8-digit hexadecimal code can be used, e.g. ``[color=#88ffffff]translucent white[/color]``. In this case, note that the alpha channel is the **first** component of the color code, not the last one." msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:120 -msgid "Create a ``BitmapFont`` resource" -msgstr "" - -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:121 -msgid "Set this bitmap font with a positive value for the ``ascent`` property, that's your height offset" +msgid "Image vertical offset" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:122 -msgid "Set the BBCode tag this way: ``[font=][img]{image-path}[/img][/font]``" +msgid "You use a custom font for your image in order to align it vertically." +msgstr "" + +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:124 +msgid "Create a ``BitmapFont`` resource" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:125 +msgid "Set this bitmap font with a positive value for the ``ascent`` property, that's your height offset" +msgstr "" + +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:126 +msgid "Set the BBCode tag this way: ``[font=][img]{image-path}[/img][/font]``" +msgstr "" + +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:129 msgid "Animation effects" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:127 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:131 msgid "BBCode can also be used to create different text animation effects. Five customizable effects are provided out of the box, and you can easily create your own." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:131 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:135 msgid "Wave" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:135 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:139 msgid "Wave makes the text go up and down. Its tag format is ``[wave amp=50 freq=2][/wave]``. ``amp`` controls how high and low the effect goes, and ``freq`` controls how fast the text goes up and down." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:140 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:144 msgid "Tornado" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:144 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:148 msgid "Tornao makes the text move around in a circle. Its tag format is ``[tornado radius=5 freq=2][/tornado]``. ``radius`` is the radius of the circle that controls the offset, ``freq`` is how fast the text moves in a circle." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:150 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:154 msgid "Shake" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:154 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:158 msgid "Shake makes the text shake. Its tag format is ``[shake rate=5 level=10][/shake]``. ``rate`` controls how fast the text shakes, ``level`` controls how far the text is offset from the origin." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:159 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:163 msgid "Fade" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:163 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:167 msgid "Fade creates a fade effect over the text that is not animated. Its tag format is ``[fade start=4 length=14][/fade]``. ``start`` controls the starting position of the falloff relative to where the fade command is inserted, ``length`` controls over how many characters should the fade out take place." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:170 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:174 msgid "Rainbow" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:174 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:178 msgid "Rainbow gives the text a rainbow color that changes over time. Its tag format is ``[rainbow freq=0.2 sat=10 val=20][/rainbow]``. ``freq`` is the number of full rainbow cycles per second, ``sat`` is the saturation of the rainbow, ``val`` is the value of the rainbow." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:180 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:184 msgid "Custom BBCode tags and text effects" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:182 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:186 msgid "You can extend the :ref:`class_RichTextEffect` resource type to create your own custom BBCode tags. You begin by extending the :ref:`class_RichTextEffect` resource type. Add the ``tool`` prefix to your GDScript file if you wish to have these custom effects run within the editor itself. The RichTextLabel does not need to have a script attached, nor does it need to be running in ``tool`` mode." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:188 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:192 msgid "There is only one function that you need to extend: ``_process_custom_fx(char_fx)``. Optionally, you can also provide a custom BBCode identifier simply by adding a member name ``bbcode``. The code will check the ``bbcode`` property automatically or will use the name of the file to determine what the BBCode tag should be." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:194 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:198 msgid "``_process_custom_fx``" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:196 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:200 msgid "This is where the logic of each effect takes place and is called once per character during the draw phase of text rendering. This passes in a :ref:`class_CharFXTransform` object, which holds a few variables to control how the associated character is rendered:" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:200 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:204 msgid "``identity`` specifies which custom effect is being processed. You should use that for code flow control." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:202 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:206 msgid "``relative_index`` tells you how far into a given custom effect block you are in as an index." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:204 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:208 msgid "``absolute_index`` tells you how far into the entire text you are as an index." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:205 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:209 msgid "``elapsed_time`` is the total amount of time the text effect has been running." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:206 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:210 msgid "``visible`` will tell you whether the character is visible or not and will also allow you to hide a given portion of text." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:208 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:212 msgid "``offset`` is an offset position relative to where the given character should render under normal circumstances." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:210 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:214 msgid "``color`` is the color of a given character." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:211 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:215 msgid "Finally, ``env`` is a :ref:`class_Dictionary` of parameters assigned to a given custom effect. You can use :ref:`get() ` with an optional default value to retrieve each parameter, if specified by the user. For example ``[custom_fx spread=0.5 color=#FFFF00]test[/custom_fx]`` would have a float ``spread`` and Color ``color`` parameters in its ` `env`` Dictionary. See below for more usage examples." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:217 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:221 msgid "The last thing to note about this function is that it is necessary to return a boolean ``true`` value to verify that the effect processed correctly. This way, if there's a problem with rendering a given character, it will back out of rendering custom effects entirely until the user fixes whatever error cropped up in their custom effect logic." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:222 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:226 msgid "Here are some examples of custom effects:" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:225 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:229 msgid "Ghost" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:247 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:251 msgid "Pulse" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:273 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:277 msgid "Matrix" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:307 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:311 msgid "This will add a few new BBCode commands, which can be used like so:" msgstr "" diff --git a/sphinx/templates/tutorials/gui/custom_gui_controls.pot b/sphinx/templates/tutorials/gui/custom_gui_controls.pot index 4435dde137..afeebb7337 100644 --- a/sphinx/templates/tutorials/gui/custom_gui_controls.pot +++ b/sphinx/templates/tutorials/gui/custom_gui_controls.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/gui/gui_containers.pot b/sphinx/templates/tutorials/gui/gui_containers.pot index 24f96075e9..ce73058926 100644 --- a/sphinx/templates/tutorials/gui/gui_containers.pot +++ b/sphinx/templates/tutorials/gui/gui_containers.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/gui/gui_skinning.pot b/sphinx/templates/tutorials/gui/gui_skinning.pot index c9d1207839..1c21ec8436 100644 --- a/sphinx/templates/tutorials/gui/gui_skinning.pot +++ b/sphinx/templates/tutorials/gui/gui_skinning.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/gui/index.pot b/sphinx/templates/tutorials/gui/index.pot index 5b3b2f2051..9d2c5181c3 100644 --- a/sphinx/templates/tutorials/gui/index.pot +++ b/sphinx/templates/tutorials/gui/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/gui/size_and_anchors.pot b/sphinx/templates/tutorials/gui/size_and_anchors.pot index 78533c815f..c4c72d2cc2 100644 --- a/sphinx/templates/tutorials/gui/size_and_anchors.pot +++ b/sphinx/templates/tutorials/gui/size_and_anchors.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -37,7 +37,7 @@ msgid "This is done by editing the *margin* properties of controls. Each control msgstr "" #: ../../docs/tutorials/gui/size_and_anchors.rst:29 -msgid "When horizontal (left,right) and/or vertical (top,bottom) anchors are changed to 1, the margin values become relative to the bottom-right corner of the parent control or viewport." +msgid "When horizontal (left, right) and/or vertical (top, bottom) anchors are changed to 1, the margin values become relative to the bottom-right corner of the parent control or viewport." msgstr "" #: ../../docs/tutorials/gui/size_and_anchors.rst:35 diff --git a/sphinx/templates/tutorials/i18n/index.pot b/sphinx/templates/tutorials/i18n/index.pot index 3ddfaf4343..f58cb636c5 100644 --- a/sphinx/templates/tutorials/i18n/index.pot +++ b/sphinx/templates/tutorials/i18n/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/i18n/internationalizing_games.pot b/sphinx/templates/tutorials/i18n/internationalizing_games.pot index 7613b8835c..3e6bb1592c 100644 --- a/sphinx/templates/tutorials/i18n/internationalizing_games.pot +++ b/sphinx/templates/tutorials/i18n/internationalizing_games.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/i18n/locales.pot b/sphinx/templates/tutorials/i18n/locales.pot index 1a9f4bfa8a..0ca378797e 100644 --- a/sphinx/templates/tutorials/i18n/locales.pot +++ b/sphinx/templates/tutorials/i18n/locales.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2597,7 +2597,7 @@ msgid "th_TH_TH" msgstr "" #: ../../docs/tutorials/i18n/locales.rst:652 -msgid "Thai (Thailand,TH)" +msgid "Thai (Thailand, TH)" msgstr "" #: ../../docs/tutorials/i18n/locales.rst:654 diff --git a/sphinx/templates/tutorials/i18n/localization_using_gettext.pot b/sphinx/templates/tutorials/i18n/localization_using_gettext.pot index d5c8516396..4d88826c59 100644 --- a/sphinx/templates/tutorials/i18n/localization_using_gettext.pot +++ b/sphinx/templates/tutorials/i18n/localization_using_gettext.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/inputs/custom_mouse_cursor.pot b/sphinx/templates/tutorials/inputs/custom_mouse_cursor.pot index a2a3d49660..a3fc61a022 100644 --- a/sphinx/templates/tutorials/inputs/custom_mouse_cursor.pot +++ b/sphinx/templates/tutorials/inputs/custom_mouse_cursor.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/inputs/index.pot b/sphinx/templates/tutorials/inputs/index.pot index 8cdbb168bd..cf2b904bc2 100644 --- a/sphinx/templates/tutorials/inputs/index.pot +++ b/sphinx/templates/tutorials/inputs/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/inputs/input_examples.pot b/sphinx/templates/tutorials/inputs/input_examples.pot index 6d739c8115..fdb1ca02f8 100644 --- a/sphinx/templates/tutorials/inputs/input_examples.pot +++ b/sphinx/templates/tutorials/inputs/input_examples.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/inputs/inputevent.pot b/sphinx/templates/tutorials/inputs/inputevent.pot index e8eaac4eb0..cf3b1e57d1 100644 --- a/sphinx/templates/tutorials/inputs/inputevent.pot +++ b/sphinx/templates/tutorials/inputs/inputevent.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/inputs/mouse_and_input_coordinates.pot b/sphinx/templates/tutorials/inputs/mouse_and_input_coordinates.pot index 17dc98200c..4fbc0e9b13 100644 --- a/sphinx/templates/tutorials/inputs/mouse_and_input_coordinates.pot +++ b/sphinx/templates/tutorials/inputs/mouse_and_input_coordinates.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/io/background_loading.pot b/sphinx/templates/tutorials/io/background_loading.pot index 3386355ca3..3a3b7dc695 100644 --- a/sphinx/templates/tutorials/io/background_loading.pot +++ b/sphinx/templates/tutorials/io/background_loading.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -177,6 +177,6 @@ msgid "Example:" msgstr "" #: ../../docs/tutorials/io/background_loading.rst:298 -msgid "**Note**: this code, in its current form, is not tested in real world scenarios. Ask punto on IRC (#godotengine on irc.freenode.net) for help." +msgid "**Note**: this code, in its current form, is not tested in real world scenarios. If you run into any issues, ask for help in one of `Godot's community channels `__." msgstr "" diff --git a/sphinx/templates/tutorials/io/data_paths.pot b/sphinx/templates/tutorials/io/data_paths.pot index 7eb14b8360..e5e3a738e6 100644 --- a/sphinx/templates/tutorials/io/data_paths.pot +++ b/sphinx/templates/tutorials/io/data_paths.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/io/encrypting_save_games.pot b/sphinx/templates/tutorials/io/encrypting_save_games.pot index f51d0dc36b..8342a8b05a 100644 --- a/sphinx/templates/tutorials/io/encrypting_save_games.pot +++ b/sphinx/templates/tutorials/io/encrypting_save_games.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/io/index.pot b/sphinx/templates/tutorials/io/index.pot index afe8b7f827..9bdf0ee7ed 100644 --- a/sphinx/templates/tutorials/io/index.pot +++ b/sphinx/templates/tutorials/io/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/io/saving_games.pot b/sphinx/templates/tutorials/io/saving_games.pot index daf7f6da35..8125d00a7e 100644 --- a/sphinx/templates/tutorials/io/saving_games.pot +++ b/sphinx/templates/tutorials/io/saving_games.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/legal/complying_with_licenses.pot b/sphinx/templates/tutorials/legal/complying_with_licenses.pot index 7ad91c0fb7..8ab98bc1fa 100644 --- a/sphinx/templates/tutorials/legal/complying_with_licenses.pot +++ b/sphinx/templates/tutorials/legal/complying_with_licenses.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/legal/index.pot b/sphinx/templates/tutorials/legal/index.pot index 52835ada40..60c3a6d815 100644 --- a/sphinx/templates/tutorials/legal/index.pot +++ b/sphinx/templates/tutorials/legal/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/math/beziers_and_curves.pot b/sphinx/templates/tutorials/math/beziers_and_curves.pot index c45b3887f3..6290023c9f 100644 --- a/sphinx/templates/tutorials/math/beziers_and_curves.pot +++ b/sphinx/templates/tutorials/math/beziers_and_curves.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/math/index.pot b/sphinx/templates/tutorials/math/index.pot index 347633e71d..7f38b80959 100644 --- a/sphinx/templates/tutorials/math/index.pot +++ b/sphinx/templates/tutorials/math/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/math/interpolation.pot b/sphinx/templates/tutorials/math/interpolation.pot index fc3b6a29e3..2638d8172b 100644 --- a/sphinx/templates/tutorials/math/interpolation.pot +++ b/sphinx/templates/tutorials/math/interpolation.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/math/matrices_and_transforms.pot b/sphinx/templates/tutorials/math/matrices_and_transforms.pot index d915ed8f35..a0532a97bc 100644 --- a/sphinx/templates/tutorials/math/matrices_and_transforms.pot +++ b/sphinx/templates/tutorials/math/matrices_and_transforms.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -65,7 +65,7 @@ msgid "You should not worry about manipulating rows directly, as we usually work msgstr "" #: ../../docs/tutorials/math/matrices_and_transforms.rst:53 -msgid "When we refer to a value such as `t.x.y`, that's the Y component of the X column vector. In other words, the bottom-left of the matrix. Similarly, `t.x.x` is top-left, `t.y.x` is top-right,and `t.y.y` is bottom-right, where `t` is the Transform2D." +msgid "When we refer to a value such as `t.x.y`, that's the Y component of the X column vector. In other words, the bottom-left of the matrix. Similarly, `t.x.x` is top-left, `t.y.x` is top-right, and `t.y.y` is bottom-right, where `t` is the Transform2D." msgstr "" #: ../../docs/tutorials/math/matrices_and_transforms.rst:59 diff --git a/sphinx/templates/tutorials/math/vector_math.pot b/sphinx/templates/tutorials/math/vector_math.pot index aed105d297..3c44e403cf 100644 --- a/sphinx/templates/tutorials/math/vector_math.pot +++ b/sphinx/templates/tutorials/math/vector_math.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/math/vectors_advanced.pot b/sphinx/templates/tutorials/math/vectors_advanced.pot index b41d39ad9f..aad546a681 100644 --- a/sphinx/templates/tutorials/math/vectors_advanced.pot +++ b/sphinx/templates/tutorials/math/vectors_advanced.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/misc/binary_serialization_api.pot b/sphinx/templates/tutorials/misc/binary_serialization_api.pot index 1f2c6b78e6..f0466680c9 100644 --- a/sphinx/templates/tutorials/misc/binary_serialization_api.pot +++ b/sphinx/templates/tutorials/misc/binary_serialization_api.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/misc/change_scenes_manually.pot b/sphinx/templates/tutorials/misc/change_scenes_manually.pot index c10f4c7e28..9a79f01e18 100644 --- a/sphinx/templates/tutorials/misc/change_scenes_manually.pot +++ b/sphinx/templates/tutorials/misc/change_scenes_manually.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/misc/gles2_gles3_differences.pot b/sphinx/templates/tutorials/misc/gles2_gles3_differences.pot index 625f968da6..bcbb2ecea5 100644 --- a/sphinx/templates/tutorials/misc/gles2_gles3_differences.pot +++ b/sphinx/templates/tutorials/misc/gles2_gles3_differences.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/misc/handling_quit_requests.pot b/sphinx/templates/tutorials/misc/handling_quit_requests.pot index 91f7250201..203fc48821 100644 --- a/sphinx/templates/tutorials/misc/handling_quit_requests.pot +++ b/sphinx/templates/tutorials/misc/handling_quit_requests.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/misc/index.pot b/sphinx/templates/tutorials/misc/index.pot index c55bf1112a..4e19dc2541 100644 --- a/sphinx/templates/tutorials/misc/index.pot +++ b/sphinx/templates/tutorials/misc/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/misc/instancing_with_signals.pot b/sphinx/templates/tutorials/misc/instancing_with_signals.pot index 71d8ca5e5d..7497746307 100644 --- a/sphinx/templates/tutorials/misc/instancing_with_signals.pot +++ b/sphinx/templates/tutorials/misc/instancing_with_signals.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/misc/jitter_stutter.pot b/sphinx/templates/tutorials/misc/jitter_stutter.pot index 390d8f3da9..a7f9e4aaa2 100644 --- a/sphinx/templates/tutorials/misc/jitter_stutter.pot +++ b/sphinx/templates/tutorials/misc/jitter_stutter.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -60,79 +60,83 @@ msgstr "" msgid "Sometimes only some objects appear to jitter (character or background). This happens when they are processed in different time sources (one is processed in the physics step while another is processed in the idle step). Godot 3.1 does some improvements to this, from allowing kinematic bodies to be animated in the regular _process loop, to further fixes in the frame timer." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:44 +#: ../../docs/tutorials/misc/jitter_stutter.rst:45 +msgid "You can use physics interpolation to mitigate physics-related jittering. See `lawnjelly's smoothing-addon `__ for an add-on that can be dropped into any project to enable physics interpolation." +msgstr "" + +#: ../../docs/tutorials/misc/jitter_stutter.rst:50 msgid "Stutter" msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:46 +#: ../../docs/tutorials/misc/jitter_stutter.rst:52 msgid "Stutter may happen due to two different reasons. The first, and most obvious one, is the game not being able to keep full framerate performance. Solving this is game specific and will require optimization." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:49 +#: ../../docs/tutorials/misc/jitter_stutter.rst:55 msgid "The second is more complicated, because it is often not associated to the engine or game but the underlying operating system. Here is some information regarding stutter on different OSs." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:53 +#: ../../docs/tutorials/misc/jitter_stutter.rst:59 msgid "Windows" msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:55 +#: ../../docs/tutorials/misc/jitter_stutter.rst:61 msgid "Windows is known to cause stutter in windowed games. This mostly depends on the hardware installed, drivers version and processes running in parallel (e.g. having many browser tabs open may cause stutter in a running game). To avoid this, starting with 3.1, Godot raises the game priority to \"Above Normal\". This helps considerably but may not completely eliminate stutter." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:60 +#: ../../docs/tutorials/misc/jitter_stutter.rst:66 msgid "Eliminating this completely requires giving your game full privileges to become \"time critical\", which is not advised. Some games may do it, but it is advised to learn to live with this problem, as it is common for Windows games and most users won't play games windowed (games that are played in a window, e.g. puzzle games, will usually not exhibit this problem anyway)." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:64 +#: ../../docs/tutorials/misc/jitter_stutter.rst:70 msgid "For fullscreen, Windows gives special priority to the game so stutter is no longer visible and very rare. This is how most games are played." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:68 +#: ../../docs/tutorials/misc/jitter_stutter.rst:74 msgid "Linux (X11)" msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:70 +#: ../../docs/tutorials/misc/jitter_stutter.rst:76 msgid "Stutter may be visible on Desktop Linux, but this is usually associated with different video drivers and compositors. Nouveau drivers often exhibit this, while AMD or NVidia proprietary don't. Some compositors may also trigger this problem (e.g. KWin), so it is advised to try using a different one to rule it out as the cause." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:74 +#: ../../docs/tutorials/misc/jitter_stutter.rst:80 msgid "There is no workaround for driver or compositor stuttering other than reporting it as an issue to the driver or compositor developers." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:78 +#: ../../docs/tutorials/misc/jitter_stutter.rst:84 msgid "macOS" msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:80 +#: ../../docs/tutorials/misc/jitter_stutter.rst:86 msgid "Generally, macOS is stutter-free, although recently some bugs were reported when running on fullscreen (this is a macOS bug). If you have a machine exhibiting this behavior, please let us know." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:84 +#: ../../docs/tutorials/misc/jitter_stutter.rst:90 msgid "Android" msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:86 +#: ../../docs/tutorials/misc/jitter_stutter.rst:92 msgid "Generally, Android is stutter and jitter-free because the running activity gets all the priority. That said, there may be problematic devices (older Kindle Fire is known to be one). If you see this problem on Android, please let us know." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:90 +#: ../../docs/tutorials/misc/jitter_stutter.rst:96 msgid "iOS" msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:92 +#: ../../docs/tutorials/misc/jitter_stutter.rst:98 msgid "iOS devices are generally stutter-free, but older devices running newer versions of the operating system may exhibit problems. This is generally unavoidable." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:96 +#: ../../docs/tutorials/misc/jitter_stutter.rst:102 msgid "Reporting stutter or jitter problems" msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:98 +#: ../../docs/tutorials/misc/jitter_stutter.rst:104 msgid "If you are reporting a stutter or jitter problem (opening an issue) not caused by any of the above reasons, please specify very clearly all the information possible about device, operating system, driver versions, etc. This may help to better troubleshoot it." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:101 +#: ../../docs/tutorials/misc/jitter_stutter.rst:107 msgid "Also make sure to use the correct term (jitter or stutter) based on the exhibited behavior. This will help understand your issue much faster. Provide a project that can be used to reproduce the issue, and if possible a screen capture demonstrating the bug." msgstr "" diff --git a/sphinx/templates/tutorials/misc/pausing_games.pot b/sphinx/templates/tutorials/misc/pausing_games.pot index 7707f6c948..a025f82eb3 100644 --- a/sphinx/templates/tutorials/misc/pausing_games.pot +++ b/sphinx/templates/tutorials/misc/pausing_games.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/misc/running_code_in_the_editor.pot b/sphinx/templates/tutorials/misc/running_code_in_the_editor.pot index 33d0ff06d5..c5eda2e383 100644 --- a/sphinx/templates/tutorials/misc/running_code_in_the_editor.pot +++ b/sphinx/templates/tutorials/misc/running_code_in_the_editor.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -104,11 +104,35 @@ msgstr "" msgid "Save the script. Now the object will spin clockwise in the editor, but if you run the game, it will spin counter-clockwise." msgstr "" -#: ../../docs/tutorials/misc/running_code_in_the_editor.rst:101 -msgid "Code from other nodes doesn't run in the editor. Your access to other nodes is limited. You can access the tree and nodes, and their default properties, but you can't access user variables. If you want to do so, other nodes have to run in the editor too. AutoLoad nodes cannot be accessed in the editor at all." +#: ../../docs/tutorials/misc/running_code_in_the_editor.rst:102 +msgid "Editing variables" msgstr "" #: ../../docs/tutorials/misc/running_code_in_the_editor.rst:103 +msgid "Add and export a variable speed to the script. The function set_speed after \"setget\" is executed with your input to change the variable. Modify ``_process()`` to include the rotation speed." +msgstr "" + +#: ../../docs/tutorials/misc/running_code_in_the_editor.rst:125 +msgid "Code from other nodes doesn't run in the editor. Your access to other nodes is limited. You can access the tree and nodes, and their default properties, but you can't access user variables. If you want to do so, other nodes have to run in the editor too. AutoLoad nodes cannot be accessed in the editor at all." +msgstr "" + +#: ../../docs/tutorials/misc/running_code_in_the_editor.rst:128 +msgid "Instancing scenes" +msgstr "" + +#: ../../docs/tutorials/misc/running_code_in_the_editor.rst:130 +msgid "You can instantiate packed scenes normally and add them to the scene currently opened in the editor. Be sure to set the scene root as the owner of all the nodes created this way or the nodes won't be visible in the editor." +msgstr "" + +#: ../../docs/tutorials/misc/running_code_in_the_editor.rst:132 +msgid "If you are using ``tool``:" +msgstr "" + +#: ../../docs/tutorials/misc/running_code_in_the_editor.rst:142 +msgid "If you are using :ref:`EditorScript`:" +msgstr "" + +#: ../../docs/tutorials/misc/running_code_in_the_editor.rst:153 msgid "Using ``tool`` improperly can yield many errors. It is advised to first write the code how you want it, and only then add the ``tool`` keyword to the top. Also make sure you divide your code into part that runs in editor and part that runs in game. This way you can find your bug easier." msgstr "" diff --git a/sphinx/templates/tutorials/misc/state_design_pattern.pot b/sphinx/templates/tutorials/misc/state_design_pattern.pot index 445697390b..0dd8cb8a19 100644 --- a/sphinx/templates/tutorials/misc/state_design_pattern.pot +++ b/sphinx/templates/tutorials/misc/state_design_pattern.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/networking/high_level_multiplayer.pot b/sphinx/templates/tutorials/networking/high_level_multiplayer.pot index f5a19fb53e..13c38a683b 100644 --- a/sphinx/templates/tutorials/networking/high_level_multiplayer.pot +++ b/sphinx/templates/tutorials/networking/high_level_multiplayer.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,11 +17,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:4 -msgid "High level multiplayer" +msgid "High-level multiplayer" msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:7 -msgid "High level vs low level API" +msgid "High-level vs low-level API" msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:9 @@ -109,7 +109,7 @@ msgid "The object that controls networking in Godot is the same one that control msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:78 -msgid "To initialize high level networking, the SceneTree must be provided a NetworkedMultiplayerPeer object." +msgid "To initialize high-level networking, the SceneTree must be provided a NetworkedMultiplayerPeer object." msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:80 @@ -416,3 +416,15 @@ msgstr "" msgid "Note that you could also send the ``stun()`` message only to a specific player by using ``rpc_id(, \"exploded\", bomb_owner)``. This may not make much sense for an area-of-effect case like the bomb, but in other cases, like single target damage." msgstr "" +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:425 +msgid "Exporting for dedicated servers" +msgstr "" + +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:427 +msgid "Once you've made a multiplayer game, you may want to export it to run it on a dedicated server with no GPU available. See :ref:`doc_exporting_for_dedicated_servers` for more information." +msgstr "" + +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:433 +msgid "The code samples on this page aren't designed to run on a dedicated server. You'll have to modify them so the server isn't considered to be a player. You'll also have to modify the game starting mechanism so that the first player who joins can start the game." +msgstr "" + diff --git a/sphinx/templates/tutorials/networking/http_client_class.pot b/sphinx/templates/tutorials/networking/http_client_class.pot index d170a8ef47..6c08fcd101 100644 --- a/sphinx/templates/tutorials/networking/http_client_class.pot +++ b/sphinx/templates/tutorials/networking/http_client_class.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/networking/http_request_class.pot b/sphinx/templates/tutorials/networking/http_request_class.pot index 00914b912b..ab7db8e584 100644 --- a/sphinx/templates/tutorials/networking/http_request_class.pot +++ b/sphinx/templates/tutorials/networking/http_request_class.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/networking/index.pot b/sphinx/templates/tutorials/networking/index.pot index dad2cae77e..4fb5fccbbf 100644 --- a/sphinx/templates/tutorials/networking/index.pot +++ b/sphinx/templates/tutorials/networking/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/networking/ssl_certificates.pot b/sphinx/templates/tutorials/networking/ssl_certificates.pot index 37fd6f4550..6be00e2261 100644 --- a/sphinx/templates/tutorials/networking/ssl_certificates.pot +++ b/sphinx/templates/tutorials/networking/ssl_certificates.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -29,7 +29,7 @@ msgid "It is often desired to use SSL connections for communications to avoid \" msgstr "" #: ../../docs/tutorials/networking/ssl_certificates.rst:16 -msgid "For SSL to work, certificates need to be provided. A .crt file must be specified in the project settings:" +msgid "Godot includes SSL certificates from Mozilla, but you can provide your own with a .crt file in the project settings:" msgstr "" #: ../../docs/tutorials/networking/ssl_certificates.rst:21 diff --git a/sphinx/templates/tutorials/networking/webrtc.pot b/sphinx/templates/tutorials/networking/webrtc.pot index 9ac69415d3..7b891201f8 100644 --- a/sphinx/templates/tutorials/networking/webrtc.pot +++ b/sphinx/templates/tutorials/networking/webrtc.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/networking/websocket.pot b/sphinx/templates/tutorials/networking/websocket.pot index 058472e74a..bdf5cd6c88 100644 --- a/sphinx/templates/tutorials/networking/websocket.pot +++ b/sphinx/templates/tutorials/networking/websocket.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/optimization/index.pot b/sphinx/templates/tutorials/optimization/index.pot index 44036e2001..b41c468b3c 100644 --- a/sphinx/templates/tutorials/optimization/index.pot +++ b/sphinx/templates/tutorials/optimization/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/optimization/using_multimesh.pot b/sphinx/templates/tutorials/optimization/using_multimesh.pot index 4f535a61af..4eb2622870 100644 --- a/sphinx/templates/tutorials/optimization/using_multimesh.pot +++ b/sphinx/templates/tutorials/optimization/using_multimesh.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/optimization/using_servers.pot b/sphinx/templates/tutorials/optimization/using_servers.pot index 83ce48fb9a..1db0c4bf42 100644 --- a/sphinx/templates/tutorials/optimization/using_servers.pot +++ b/sphinx/templates/tutorials/optimization/using_servers.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/physics/index.pot b/sphinx/templates/tutorials/physics/index.pot index dcac236048..13f9f0afa3 100644 --- a/sphinx/templates/tutorials/physics/index.pot +++ b/sphinx/templates/tutorials/physics/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/physics/kinematic_character_2d.pot b/sphinx/templates/tutorials/physics/kinematic_character_2d.pot index d4b4bd9310..09bc49170d 100644 --- a/sphinx/templates/tutorials/physics/kinematic_character_2d.pot +++ b/sphinx/templates/tutorials/physics/kinematic_character_2d.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/physics/physics_introduction.pot b/sphinx/templates/tutorials/physics/physics_introduction.pot index 0e088bee42..3565903554 100644 --- a/sphinx/templates/tutorials/physics/physics_introduction.pot +++ b/sphinx/templates/tutorials/physics/physics_introduction.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -360,7 +360,7 @@ msgstr "" msgid "For example, use the following code to make a character that can walk along the ground (including slopes) and jump when standing on the ground:" msgstr "" -#: ../../docs/tutorials/physics/physics_introduction.rst:451 +#: ../../docs/tutorials/physics/physics_introduction.rst:453 msgid "See :ref:`doc_kinematic_character_2d` for more details on using ``move_and_slide()``, including a demo project with detailed code." msgstr "" diff --git a/sphinx/templates/tutorials/physics/ragdoll_system.pot b/sphinx/templates/tutorials/physics/ragdoll_system.pot index a444cf1620..50dc93a154 100644 --- a/sphinx/templates/tutorials/physics/ragdoll_system.pot +++ b/sphinx/templates/tutorials/physics/ragdoll_system.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/physics/ray-casting.pot b/sphinx/templates/tutorials/physics/ray-casting.pot index 0012f59578..ba4c418194 100644 --- a/sphinx/templates/tutorials/physics/ray-casting.pot +++ b/sphinx/templates/tutorials/physics/ray-casting.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/physics/rigid_body.pot b/sphinx/templates/tutorials/physics/rigid_body.pot index 0eb853f2d5..7486c23e10 100644 --- a/sphinx/templates/tutorials/physics/rigid_body.pot +++ b/sphinx/templates/tutorials/physics/rigid_body.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/physics/soft_body.pot b/sphinx/templates/tutorials/physics/soft_body.pot index f63cf73b37..6595b59dca 100644 --- a/sphinx/templates/tutorials/physics/soft_body.pot +++ b/sphinx/templates/tutorials/physics/soft_body.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/physics/using_area_2d.pot b/sphinx/templates/tutorials/physics/using_area_2d.pot index 290b1cfa97..1d8c1d703c 100644 --- a/sphinx/templates/tutorials/physics/using_area_2d.pot +++ b/sphinx/templates/tutorials/physics/using_area_2d.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/physics/using_kinematic_body_2d.pot b/sphinx/templates/tutorials/physics/using_kinematic_body_2d.pot index e339941271..881a8b64d5 100644 --- a/sphinx/templates/tutorials/physics/using_kinematic_body_2d.pot +++ b/sphinx/templates/tutorials/physics/using_kinematic_body_2d.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -89,7 +89,7 @@ msgid "In addition to the velocity vector, ``move_and_slide()`` takes a number o msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:73 -msgid "``floor_normal`` - *default value:* ``Vector2( 0, 0 )``" +msgid "``up_direction`` - *default value:* ``Vector2( 0, 0 )``" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:75 @@ -97,186 +97,194 @@ msgid "This parameter allows you to define what surfaces the engine should consi msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:80 -msgid "``slope_stop_min_velocity`` - *default value:* ``5``" +msgid "``stop_on_slope`` - *default value:* ``false``" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:82 -msgid "This parameter is the minimum velocity required to move when standing on a slope. It prevents a body from sliding down when standing still." +msgid "This parameter prevents a body from sliding down slopes when standing still." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:85 -msgid "``max_bounces`` - *default value:* ``4``" +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:84 +msgid "``max_slides`` - *default value:* ``4``" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:87 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:86 msgid "This parameter is the maximum number of collisions before the body stops moving. Setting it too low may prevent movement entirely." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:90 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:89 msgid "``floor_max_angle`` - *default value:* ``0.785398`` (in radians, equivalent to ``45`` degrees)" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:92 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:91 msgid "This parameter is the maximum angle before a surface is no longer considered a \"floor.\"" msgstr "" +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:93 +msgid "``infinite_inertia`` - *default value:* ``true``" +msgstr "" + #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:95 +msgid "When this parameter is ``true``, the body can push :ref:`RigidBody2D ` nodes, ignoring their mass, but won't detect collisions with them. If it's ``false`` the body will collide with rigid bodies and stop." +msgstr "" + +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:100 msgid "``move_and_slide_with_snap``" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:97 -msgid "This method adds some additional functionality to ``move_and_slide()`` by adding the ``snap`` parameter. As long as this vector is in contact with the ground, the body will remain attached to the surface. Note that this means you must disable snapping when jumping, for example. You can do this either by setting ``snap`` to ``Vector2(0, 0)`` or by using ``move_and_slide()`` instead." -msgstr "" - -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:105 -msgid "Detecting collisions" -msgstr "" - -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:107 -msgid "When using ``move_and_collide()`` the function returns a ``KinematicCollision2D`` directly, and you can use this in your code." +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:102 +msgid "This method adds some additional functionality to ``move_and_slide()`` by adding the ``snap`` parameter. As long as this vector is in contact with the ground, the body will remain attached to the surface. Note that this means you must disable snapping when jumping, for example. You can do this either by setting ``snap`` to ``Vector2.ZERO`` or by using ``move_and_slide()`` instead." msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:110 +msgid "Detecting collisions" +msgstr "" + +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:112 +msgid "When using ``move_and_collide()`` the function returns a ``KinematicCollision2D`` directly, and you can use this in your code." +msgstr "" + +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:115 msgid "When using ``move_and_slide()`` it's possible to have multiple collisions occur, as the slide response is calculated. To process these collisions, use ``get_slide_count()`` and ``get_slide_collision()``:" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:128 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:133 msgid "See :ref:`KinematicCollision2D ` for details on what collision data is returned." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:132 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:137 msgid "Which movement method to use?" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:134 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:139 msgid "A common question from new Godot users is: \"How do you decide which movement function to use?\" Often, the response is to use ``move_and_slide()`` because it's \"simpler,\" but this is not necessarily the case. One way to think of it is that ``move_and_slide()`` is a special case, and ``move_and_collide()`` is more general. For example, the following two code snippets result in the same collision response:" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:165 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:170 msgid "Anything you do with ``move_and_slide()`` can also be done with ``move_and_collide()``, but it might take a little more code. However, as we'll see in the examples below, there are cases where ``move_and_slide()`` doesn't provide the response you want." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:169 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:174 msgid "In the example above, we assign the velocity that ``move_and_slide()`` returns back into the ``velocity`` variable. This is because when the character collides with the environment, the function recalculates the speed internally to reflect the slowdown." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:174 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:179 msgid "For example, if your character fell on the floor, you don't want it to accumulate vertical speed due to the effect of gravity. Instead, you want its vertical speed to reset to zero." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:178 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:183 msgid "``move_and_slide()`` may also recalculate the kinematic body's velocity several times in a loop as, to produce a smooth motion, it moves the character and collides up to five times by default. At the end of the process, the function returns the character's new velocity that we can store in our ``velocity`` variable, and use on the next frame." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:185 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:190 msgid "Examples" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:187 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:192 msgid "To see these examples in action, download the sample project: :download:`using_kinematic2d.zip `." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:191 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:196 msgid "Movement and walls" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:193 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:198 msgid "If you've downloaded the sample project, this example is in \"BasicMovement.tscn\"." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:195 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:200 msgid "For this example, add a ``KinematicBody2D`` with two children: a ``Sprite`` and a ``CollisionShape2D``. Use the Godot \"icon.png\" as the Sprite's texture (drag it from the Filesystem dock to the *Texture* property of the ``Sprite``). In the ``CollisionShape2D``'s *Shape* property, select \"New RectangleShape2D\" and size the rectangle to fit over the sprite image." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:201 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:206 msgid "See :ref:`doc_2d_movement` for examples of implementing 2D movement schemes." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:203 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:208 msgid "Attach a script to the KinematicBody2D and add the following code:" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:266 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:271 msgid "Run this scene and you'll see that ``move_and_collide()`` works as expected, moving the body along the velocity vector. Now let's see what happens when you add some obstacles. Add a :ref:`StaticBody2D ` with a rectangular collision shape. For visibility, you can use a sprite, a Polygon2D, or turn on \"Visible Collision Shapes\" from the \"Debug\" menu." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:272 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:277 msgid "Run the scene again and try moving into the obstacle. You'll see that the ``KinematicBody2D`` can't penetrate the obstacle. However, try moving into the obstacle at an angle and you'll find that the obstacle acts like glue - it feels like the body gets stuck." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:276 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:281 msgid "This happens because there is no *collision response*. ``move_and_collide()`` stops the body's movement when a collision occurs. We need to code whatever response we want from the collision." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:280 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:285 msgid "Try changing the function to ``move_and_slide(velocity)`` and running again. Note that we removed ``delta`` from the velocity calculation." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:283 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:288 msgid "``move_and_slide()`` provides a default collision response of sliding the body along the collision object. This is useful for a great many game types, and may be all you need to get the behavior you want." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:288 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:293 msgid "Bouncing/reflecting" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:290 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:295 msgid "What if you don't want a sliding collision response? For this example (\"BounceandCollide.tscn\" in the sample project), we have a character shooting bullets and we want the bullets to bounce off the walls." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:294 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:299 msgid "This example uses three scenes. The main scene contains the Player and Walls. The Bullet and Wall are separate scenes so that they can be instanced." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:297 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:302 msgid "The Player is controlled by the `w` and `s` keys for forward and back. Aiming uses the mouse pointer. Here is the code for the Player, using ``move_and_slide()``:" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:384 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:389 msgid "And the code for the Bullet:" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:446 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:451 msgid "The action happens in ``_physics_process()``. After using ``move_and_collide()``, if a collision occurs, a ``KinematicCollision2D`` object is returned (otherwise, the return is ``Nil``)." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:450 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:455 msgid "If there is a returned collision, we use the ``normal`` of the collision to reflect the bullet's ``velocity`` with the ``Vector2.bounce()`` method." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:453 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:458 msgid "If the colliding object (``collider``) has a ``hit`` method, we also call it. In the example project, we've added a flashing color effect to the Wall to demonstrate this." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:460 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:465 msgid "Platformer movement" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:462 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:467 msgid "Let's try one more popular example: the 2D platformer. ``move_and_slide()`` is ideal for quickly getting a functional character controller up and running. If you've downloaded the sample project, you can find this in \"Platformer.tscn\"." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:466 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:471 msgid "For this example, we'll assume you have a level made of ``StaticBody2D`` objects. They can be any shape and size. In the sample project, we're using :ref:`Polygon2D ` to create the platform shapes." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:470 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:475 msgid "Here's the code for the player body:" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:551 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:556 msgid "When using ``move_and_slide()``, the function returns a vector representing the movement that remained after the slide collision occurred. Setting that value back to the character's ``velocity`` allows us to move up and down slopes smoothly. Try removing ``velocity =`` and see what happens if you don't do this." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:556 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:561 msgid "Also note that we've added ``Vector2(0, -1)`` as the floor normal. This vector points straight upward. As a result, if the character collides with an object that has this normal, it will be considered a floor." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:560 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:565 msgid "Using the floor normal allows us to make jumping work, using ``is_on_floor()``. This function will only return ``true`` after a ``move_and_slide()`` collision where the colliding body's normal is within 45 degrees of the given floor vector. You can control the maximum angle by setting ``floor_max_angle``." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:565 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:570 msgid "This angle also allows you to implement other features like wall jumps using ``is_on_wall()``, for example." msgstr "" diff --git a/sphinx/templates/tutorials/platform/android_in_app_purchases.pot b/sphinx/templates/tutorials/platform/android_in_app_purchases.pot index 2fed9003a1..a69c475312 100644 --- a/sphinx/templates/tutorials/platform/android_in_app_purchases.pot +++ b/sphinx/templates/tutorials/platform/android_in_app_purchases.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,23 +21,19 @@ msgid "Android in-app purchases" msgstr "" #: ../../docs/tutorials/platform/android_in_app_purchases.rst:6 -msgid "Godot engine has integrated GooglePaymentsV3 module with which we can implement in-app purchases in our game." +msgid "Godot Engine has integrated GooglePaymentsV3 module with which we can implement in-app purchases in our game." msgstr "" #: ../../docs/tutorials/platform/android_in_app_purchases.rst:8 -msgid "The Godot engine demo project repository has an android-iap example project. It includes a gdscript interface for android IAP." -msgstr "" - -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:10 -msgid "Check the repository here https://github.com/godotengine/godot-demo-projects" +msgid "The `Godot demo projects repository `__ has an `android_iap `__ example project. It includes a GDScript interface for Android IAPs." msgstr "" #: ../../docs/tutorials/platform/android_in_app_purchases.rst:12 -msgid "Find the iap.gd script in" +msgid "Find the ``iap.gd`` script in:" msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:19 -msgid "Add it to the Autoload list and name it as IAP so that we can reference it anywhere in the game." +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:18 +msgid "Copy it to your project, then open the Project Settings, add it to the AutoLoad list and name it as IAP so that we can reference it anywhere in the game." msgstr "" #: ../../docs/tutorials/platform/android_in_app_purchases.rst:22 @@ -45,98 +41,106 @@ msgid "Getting the product details" msgstr "" #: ../../docs/tutorials/platform/android_in_app_purchases.rst:24 -msgid "When starting our game, we will need to get the item details from Google such as the product price, description and localized price string etc." +msgid "When starting our game, we will need to get the item details from Google such as the product price, description, localized price string, etc." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:40 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:41 msgid "We can use the IAP details to display the title, price and/or description on our shop scene." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:43 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:44 msgid "Check if user purchased an item" msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:45 -msgid "When starting our game, we can check if the user has purchased any product. YOU SHOULD DO THIS ONLY AFTER 2/3 SECONDS AFTER YOUR GAME IS LOADED. If we do this as the first thing when the game is launched, IAP might not be initialized and our game will crash on start." +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:46 +msgid "When starting our game, we can check if the user has purchased any product. **You should do this only after 2/3 seconds after your game is loaded.** If we do this as the first thing when the game is launched, IAPs might not be initialized and our game will crash on start." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:58 -msgid "Google IAP policy says the game should restore the user's purchases if the user replaces their phone or reinstalls the same app. We can use the above code to check what products the user has purchased and we can make our game respond accordingly." +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:59 +msgid "The Google IAP policy says the game should restore the user's purchases if the user replaces their phone or reinstalls the same app. We can use the above code to check what products the user has purchased and we can make our game respond accordingly." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:61 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:62 msgid "Simple Purchase" msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:63 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:64 msgid "We can put this purchase logic on a product's buy button." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:78 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:79 msgid "We can also implement other signals for the purchase flow and improve the user experience as you needed." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:80 -msgid "``purchase_fail`` - When the purchase is failed due to any reason" +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:81 +msgid "``purchase_fail``: When the purchase is failed due to any reason." msgstr "" #: ../../docs/tutorials/platform/android_in_app_purchases.rst:82 -msgid "``purchase_cancel`` - When the user cancels the purchase" +msgid "``purchase_cancel``: When the user cancels the purchase." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:84 -msgid "``purchase_owned`` - When the user already bought the product earlier" +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:83 +msgid "``purchase_owned``: When the user already bought the product earlier." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:88 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:86 msgid "Consumables and Non-Consumables" msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:90 -msgid "There are two types of products - consumables and non-consumables. **Consumables** are purchased and used, for eg: healing potions which can be purchased again and again. **Non-consumables** are one time purchases, for eg: Level packs." +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:88 +msgid "There are two types of products - consumables and non-consumables:" msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:94 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:90 +msgid "**Consumables** are purchased and used, for example, healing potions which can be purchased again and again." +msgstr "" + +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:91 +msgid "**Non-consumables** are one time purchases, for example, level packs." +msgstr "" + +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:93 msgid "Google doesn't have this separation in their dashboard. If our product is a consumable, and if a user has purchased it, it will not be available for purchase until it is consumed. So we should call the consume method for our consumables and don't call consume for your non-consumables." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:104 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:103 msgid "If our game has only consumables, we don't have to do this. We can set it to consume the item automatically after a purchase." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:110 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:109 msgid "If our game has only non-consumables, we can" msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:116 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:115 msgid "We should set the auto consume value only once when the game starts." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:119 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:118 msgid "Testing" msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:121 -msgid "If we add a gmail id as a tester in Google dashboard, that tester can purchase items and they will not be charged. Another way to test IAP is using redeem codes generated by us for our game because the purchase flow is the same." +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:120 +msgid "If we add a Gmail ID as a tester in the Google Play dashboard, that tester can purchase items and they will not be charged. Another way to test IAP is using redeem codes generated by us for our game because the purchase flow is the same." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:123 -msgid "Third way of testing is in development side. If we put the product ids as shown below, we will get a static fixed response according to the product id. This is a quick way of testing things before going to the dashboard." +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:122 +msgid "Third way of testing is in development side. If we put the product ids as shown below, we will get a static fixed response according to the product ID. This is a quick way of testing things before going to the dashboard." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:125 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:124 msgid "android.test.purchased" msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:126 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:125 msgid "android.test.canceled" msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:127 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:126 msgid "android.test.refunded" msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:128 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:127 msgid "android.test.item_unavailable" msgstr "" diff --git a/sphinx/templates/tutorials/platform/consoles.pot b/sphinx/templates/tutorials/platform/consoles.pot index 29ec6d867e..c13b5e2570 100644 --- a/sphinx/templates/tutorials/platform/consoles.pot +++ b/sphinx/templates/tutorials/platform/consoles.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,54 +21,86 @@ msgid "Console support in Godot" msgstr "" #: ../../docs/tutorials/platform/consoles.rst:7 -msgid "Official support" +msgid "Console publishing process" msgstr "" #: ../../docs/tutorials/platform/consoles.rst:9 -msgid "Godot currently does not officially support consoles (except the Xbox One using UWP)." +msgid "Regardless of the engine used to create the game, the process to publish a game to a console platform is as follows:" msgstr "" #: ../../docs/tutorials/platform/consoles.rst:12 -msgid "The reasons for this are:" +msgid "Register a developer account on the console manufacturer's website, then sign NDAs and publishing contracts. This requires you to have a registered legal entity." msgstr "" -#: ../../docs/tutorials/platform/consoles.rst:14 -msgid "To develop for consoles, one must be licensed as a company. As an open source project, Godot does not have such a legal figure." -msgstr "" - -#: ../../docs/tutorials/platform/consoles.rst:16 -msgid "Console SDKs are secret and covered by non-disclosure agreements. Even if we could get access to them, we could not publish the platform-specific code under an open source license." +#: ../../docs/tutorials/platform/consoles.rst:15 +msgid "Gain access to the publishing platform by passing the acceptance process. This can take up to several months. Note that this step is significantly easier if an established publisher is backing your game. Nintendo is generally known to be more accepting of smaller developers, but this is not guaranteed." msgstr "" #: ../../docs/tutorials/platform/consoles.rst:19 -msgid "Consoles require specialized hardware to develop for, so regular individuals can't create games for them anyway." +msgid "Get access to developer tools and order a console specially made for developers (*devkit*). The cost of those devkits is confidential." +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:21 +msgid "Port the engine to the console platform or pay a company to do it." msgstr "" #: ../../docs/tutorials/platform/consoles.rst:22 -msgid "However, it is still possible to port your games to consoles thanks to services provided by third-party companies." -msgstr "" - -#: ../../docs/tutorials/platform/consoles.rst:26 -msgid "Third-party support" +msgid "To be published, your game needs to be rated in the regions you'd like to sell it in. For example, in North America, the `ESRB `__ handles game ratings. In Europe, this is done by `PEGI `__. Indie developers can generally get a rating for cheaper compared to more established developers." msgstr "" #: ../../docs/tutorials/platform/consoles.rst:28 -msgid "Console ports of Godot are offered by third-party companies (which have ported Godot on their own). These companies also offer publishing of your games to various consoles." +msgid "Due to the complexity of the process, the budget to publish a game by yourself on a single console often exceeds $1,000 (this is a rough figure)." msgstr "" #: ../../docs/tutorials/platform/consoles.rst:32 -msgid "Following is the list of providers:" +msgid "Official support" msgstr "" #: ../../docs/tutorials/platform/consoles.rst:34 -msgid "`Lone Wolf Technology `_ offers Switch, PS4 and Xbox One porting and publishing of Godot games." +msgid "Godot currently does not officially support consoles. The reasons for this are:" msgstr "" #: ../../docs/tutorials/platform/consoles.rst:36 +msgid "To develop for consoles, one must be licensed as a company. As an open source project, Godot does not have such a legal figure." +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:38 +msgid "Console SDKs are secret and covered by non-disclosure agreements. Even if we could get access to them, we could not publish the platform-specific code under an open source license." +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:41 +msgid "Consoles require specialized hardware to develop for, so regular individuals can't create games for them anyway." +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:44 +msgid "However, it is still possible to port your games to consoles thanks to services provided by third-party companies." +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:49 +msgid "In practice, the process is quite similar to Unity and Unreal Engine, except that you need to contact a third-party developer to handle the porting process. In other words, there is no engine that is legally allowed to distribute console export templates without requiring the user to prove that they are a licensed console developer. Doing so would violate the console manufacturer's NDA." +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:57 +msgid "Third-party support" +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:59 +msgid "Console ports of Godot are offered by third-party companies (which have ported Godot on their own). These companies also offer publishing of your games to various consoles." +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:63 +msgid "Following is the list of providers:" +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:65 +msgid "`Lone Wolf Technology `_ offers Switch, PS4 and Xbox One porting and publishing of Godot games." +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:67 msgid "`Pineapple Works `_ offers Switch and Xbox One porting and publishing of Godot games." msgstr "" -#: ../../docs/tutorials/platform/consoles.rst:39 +#: ../../docs/tutorials/platform/consoles.rst:70 msgid "If your company offers porting and/or publishing services for Godot games, feel free to `open an issue or pull request `_ to add your company to the list above." msgstr "" diff --git a/sphinx/templates/tutorials/platform/customizing_html5_shell.pot b/sphinx/templates/tutorials/platform/customizing_html5_shell.pot index 06fafaa02e..485cd58963 100644 --- a/sphinx/templates/tutorials/platform/customizing_html5_shell.pot +++ b/sphinx/templates/tutorials/platform/customizing_html5_shell.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/platform/html5_shell_classref.pot b/sphinx/templates/tutorials/platform/html5_shell_classref.pot index 8938d81028..b1505a8bfd 100644 --- a/sphinx/templates/tutorials/platform/html5_shell_classref.pot +++ b/sphinx/templates/tutorials/platform/html5_shell_classref.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/platform/index.pot b/sphinx/templates/tutorials/platform/index.pot index ae18f08353..4e989a4558 100644 --- a/sphinx/templates/tutorials/platform/index.pot +++ b/sphinx/templates/tutorials/platform/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/platform/platform_html5.pot b/sphinx/templates/tutorials/platform/platform_html5.pot index b3f69ba4f1..d803ad88f9 100644 --- a/sphinx/templates/tutorials/platform/platform_html5.pot +++ b/sphinx/templates/tutorials/platform/platform_html5.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/platform/services_for_ios.pot b/sphinx/templates/tutorials/platform/services_for_ios.pot index 339a3098f7..cf52103be9 100644 --- a/sphinx/templates/tutorials/platform/services_for_ios.pot +++ b/sphinx/templates/tutorials/platform/services_for_ios.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/android/android_plugin.pot b/sphinx/templates/tutorials/plugins/android/android_plugin.pot index ad0ea5418c..23f9e0d0b8 100644 --- a/sphinx/templates/tutorials/plugins/android/android_plugin.pot +++ b/sphinx/templates/tutorials/plugins/android/android_plugin.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -96,159 +96,219 @@ msgstr "" msgid "Push notifications" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:32 -msgid "Making modifications to the Android export template is another use-case since using a plugin for that task allows the project to remain compatible with newer Godot versions." -msgstr "" - -#: ../../docs/tutorials/plugins/android/android_plugin.rst:36 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:33 msgid "Android plugin" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:38 -msgid "While introduced in Godot 3.2.0, the Android plugin system got a significant architecture update starting with Godot 3.2.2. In Godot 4.0, the new architecture became the default, rendering plugins for Godot 3.2.0 incompatible with Godot 4.0." +#: ../../docs/tutorials/plugins/android/android_plugin.rst:35 +msgid "While introduced in Godot 3.2.0, the Android plugin system got a significant architecture update starting with Godot 3.2.2. The new plugin system is backward-incompatible with the previous one, but both systems are kept functional in future releases of the 3.2.x branch. Since we previously did not version the Android plugin systems, the new one is now labelled ``v1`` and is the starting point for the modern Godot Android ecosystem." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:41 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:37 +msgid "**Note:** In Godot 4.0, the previous system will be fully deprecated and removed." +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:39 msgid "As a prerequisite, make sure you understand how to set up a :ref:`custom build environment` for Android." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:43 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:41 msgid "At its core, a Godot Android plugin is a `Android archive library `_ (*aar* archive file) with the following caveats:" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:46 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:44 msgid "The library must have a dependency on the Godot engine library (``godot-lib.x.y.aar``). A stable version is made available for each Godot release." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:48 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:46 msgid "The library must include a specifically configured ```` tag in its manifest file." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:51 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:49 msgid "Building a Android plugin" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:53 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:51 msgid "**Prerequisite:** `Android Studio `_ is strongly recommended as the IDE to use to create Android plugins. The instructions below assumes that you're using Android Studio." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:56 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:54 msgid "Follow `these instructions `__ to create an Android library module for your plugin." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:58 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:56 msgid "Add the Godot engine library as a dependency to your plugin module:" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:60 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:58 msgid "Download the Godot engine library (godot-lib.x.y.aar)" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:62 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:60 msgid "Follow `these instructions `__ to add the Godot engine library as a dependency for your plugin." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:65 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:63 msgid "In the plugin module's ``build.gradle`` file, replace ``implementation`` with ``compileOnly`` for the dependency line for the Godot engine library." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:67 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:65 msgid "Create a new class in the plugin module and make sure it extends ``org.godotengine.godot.plugin.GodotPlugin``. At runtime, it will be used to instantiate a singleton object that will be used by the Godot engine to load, initialize and run the plugin." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:70 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:68 msgid "Update the plugin ``AndroidManifest.xml`` file:" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:72 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:70 msgid "Open the plugin ``AndroidManifest.xml`` file." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:74 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:72 msgid "Add the ```` tag if it's missing." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:76 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:74 msgid "In the ```` tag, add a ```` tag setup as follow::" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:82 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:80 msgid "Where ``PluginName`` is the name of the plugin, and ``plugin.init.ClassFullName`` is the full name (package + class name) of the plugin loading class." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:84 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:82 msgid "Add the remaining logic for your plugin and run the ``gradlew build`` command to generate the plugin's ``aar`` file. The build will likely generate both a ``debug`` and ``release`` ``aar`` files. Depending on your need, pick only one version (usually the ``release`` one) which to provide your users with." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:87 -msgid "**Note:** The plugin's ``aar`` filename must match the following pattern: ``[PluginName]*.aar`` where ``PluginName`` is the name of the plugin in camel case (e.g: ``GodotPayment.release.aar``)." +#: ../../docs/tutorials/plugins/android/android_plugin.rst:86 +msgid "It's recommended that the ``aar`` filename matches the following pattern: ``[PluginName]*.aar`` where ``PluginName`` is the name of the plugin in PascalCase (e.g.: ``GodotPayment.release.aar``)." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:91 -msgid "Loading and using a Android plugin" +#: ../../docs/tutorials/plugins/android/android_plugin.rst:88 +msgid "Create a Godot Android Plugin configuration file to help the system detect and load your plugin:" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:93 -msgid "Once you have access to the plugin ``aar`` file, move it to the Godot project ``res://android/plugins`` directory." +#: ../../docs/tutorials/plugins/android/android_plugin.rst:90 +msgid "The configuration file extension must be ``gdap`` (e.g.: ``MyPlugin.gdap``)." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:95 -msgid "From your script:" +#: ../../docs/tutorials/plugins/android/android_plugin.rst:92 +msgid "The configuration file format is as follow::" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:103 -msgid "**When exporting the project**, you need to add the plugin's name to the ``Custom Template`` -> ``Plugins`` section. If trying to add multiple plugins, separate their names by a comma (``,``)." -msgstr "" - -#: ../../docs/tutorials/plugins/android/android_plugin.rst:107 -msgid "Bundling GDNative resources" +#: ../../docs/tutorials/plugins/android/android_plugin.rst:106 +msgid "The ``config`` section and fields are required and defined as follow:" msgstr "" #: ../../docs/tutorials/plugins/android/android_plugin.rst:108 -msgid "A Android plugin can define and provide C/C++ GDNative resources, either to provide and/or access functionality from the game logic. The GDNative resources can be bundled within the plugin ``aar`` file which simplifies the distribution and deployment process:" +msgid "**name**: name of the plugin" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:111 -msgid "The shared libraries (``.so``) for the defined GDNative libraries will be automatically bundled by the ``aar`` build system." +#: ../../docs/tutorials/plugins/android/android_plugin.rst:110 +msgid "**binary_type**: can be either ``local`` or ``remote``. The type affects the **binary** field" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:113 -msgid "Godot ``*.gdnlib`` and ``*.gdns`` resource files must be manually defined in the plugin ``assets`` directory. The recommended path for these resources relative to the ``assets`` directory should be: ``godot/plugin/v1/[PluginName]/``." +#: ../../docs/tutorials/plugins/android/android_plugin.rst:112 +msgid "**binary**:" +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:114 +msgid "if **binary_type** is ``local``, then this should be the filepath of the plugin ``aar`` file." msgstr "" #: ../../docs/tutorials/plugins/android/android_plugin.rst:116 -msgid "For GDNative libraries, the plugin singleton object must override the ``org.godotengine.godot.plugin.GodotPlugin::getPluginGDNativeLibrariesPaths()`` method, and return the paths to the bundled GDNative libraries config files (``*.gdnlib``). The paths must be relative to the ``assets`` directory. At runtime, the plugin will provide these paths to Godot core which will use them to load and initialize the bundled GDNative libraries." +msgid "The filepath can be relative (e.g.: ``MyPlugin.aar``) in which case it's relative to the ``res://android/plugins`` directory." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:121 -msgid "Reference implementations" +#: ../../docs/tutorials/plugins/android/android_plugin.rst:118 +msgid "The filepath can be absolute: ``res://some_path/MyPlugin.aar``." +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:120 +msgid "if **binary_type** is ``remote``, then this should be a declaration for a `remote gradle binary `_ (e.g.: ``org.godot.example:my-plugin:0.0.0``)." msgstr "" #: ../../docs/tutorials/plugins/android/android_plugin.rst:122 -msgid "`Godot Oculus Mobile plugin `_" +msgid "The ``dependencies`` section and fields are optional and defined as follow:" msgstr "" #: ../../docs/tutorials/plugins/android/android_plugin.rst:124 -msgid "`Bundled gdnative resources `_" +msgid "**local**: contains a list of filepaths to the local ``.aar`` binary files the plugin depends on. Similarly to the ``binary`` field (when the ``binary_type`` is ``local``), the local binaries' filepaths can be relative or absolute." msgstr "" #: ../../docs/tutorials/plugins/android/android_plugin.rst:126 -msgid "`Godot Payment plugin `_" +msgid "**remote**: contains a list of remote binary gradle dependencies for the plugin." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:130 -msgid "Troubleshooting" +#: ../../docs/tutorials/plugins/android/android_plugin.rst:128 +msgid "**custom_maven_repos**: contains a list of URLs specifying the custom maven repositories required for the plugin's dependencies" +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:131 +msgid "Loading and using a Android plugin" msgstr "" #: ../../docs/tutorials/plugins/android/android_plugin.rst:133 -msgid "Godot crashes upon load" +msgid "Move the plugin configuration file (e.g.: ``MyPlugin.gdap``) and, if any, its local binary (e.g.: ``MyPlugin.aar``) and dependencies to the Godot project's ``res://android/plugins`` directory." msgstr "" #: ../../docs/tutorials/plugins/android/android_plugin.rst:135 +msgid "The Godot editor will automatically parse all ``.gdap`` files in the ``res://android/plugins`` directory and show a list of detected and toggleable plugins in the Android export presets window under the **Plugins** section." +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:139 +msgid "From your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:149 +msgid "Bundling GDNative resources" +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:150 +msgid "A Android plugin can define and provide C/C++ GDNative resources, either to provide and/or access functionality from the game logic. The GDNative resources can be bundled within the plugin ``aar`` file which simplifies the distribution and deployment process:" +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:153 +msgid "The shared libraries (``.so``) for the defined GDNative libraries will be automatically bundled by the ``aar`` build system." +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:155 +msgid "Godot ``*.gdnlib`` and ``*.gdns`` resource files must be manually defined in the plugin ``assets`` directory. The recommended path for these resources relative to the ``assets`` directory should be: ``godot/plugin/v1/[PluginName]/``." +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:158 +msgid "For GDNative libraries, the plugin singleton object must override the ``org.godotengine.godot.plugin.GodotPlugin::getPluginGDNativeLibrariesPaths()`` method, and return the paths to the bundled GDNative libraries config files (``*.gdnlib``). The paths must be relative to the ``assets`` directory. At runtime, the plugin will provide these paths to Godot core which will use them to load and initialize the bundled GDNative libraries." +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:163 +msgid "Reference implementations" +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:164 +msgid "`Godot Oculus Mobile plugin `_" +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:166 +msgid "`Bundled gdnative resources `_" +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:168 +msgid "`Godot Payment plugin `_" +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:172 +msgid "Troubleshooting" +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:175 +msgid "Godot crashes upon load" +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:177 msgid "Check ``adb logcat`` for possible problems, then:" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:137 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:179 msgid "Check that the methods used in the Java singleton only use simple Java datatypes. More complex datatypes are not supported." msgstr "" diff --git a/sphinx/templates/tutorials/plugins/android/index.pot b/sphinx/templates/tutorials/plugins/android/index.pot index 1a71bb286f..e29e487297 100644 --- a/sphinx/templates/tutorials/plugins/android/index.pot +++ b/sphinx/templates/tutorials/plugins/android/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/editor/import_plugins.pot b/sphinx/templates/tutorials/plugins/editor/import_plugins.pot index ec890d8d7e..4c3e693068 100644 --- a/sphinx/templates/tutorials/plugins/editor/import_plugins.pot +++ b/sphinx/templates/tutorials/plugins/editor/import_plugins.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/editor/index.pot b/sphinx/templates/tutorials/plugins/editor/index.pot index a43958f56f..2e5d9da552 100644 --- a/sphinx/templates/tutorials/plugins/editor/index.pot +++ b/sphinx/templates/tutorials/plugins/editor/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/editor/inspector_plugins.pot b/sphinx/templates/tutorials/plugins/editor/inspector_plugins.pot index 8171351cf4..a93dc691f9 100644 --- a/sphinx/templates/tutorials/plugins/editor/inspector_plugins.pot +++ b/sphinx/templates/tutorials/plugins/editor/inspector_plugins.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/editor/installing_plugins.pot b/sphinx/templates/tutorials/plugins/editor/installing_plugins.pot index 3034091cb0..b6891d8632 100644 --- a/sphinx/templates/tutorials/plugins/editor/installing_plugins.pot +++ b/sphinx/templates/tutorials/plugins/editor/installing_plugins.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/editor/making_main_screen_plugins.pot b/sphinx/templates/tutorials/plugins/editor/making_main_screen_plugins.pot index da1b11a973..58cb23dc65 100644 --- a/sphinx/templates/tutorials/plugins/editor/making_main_screen_plugins.pot +++ b/sphinx/templates/tutorials/plugins/editor/making_main_screen_plugins.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/editor/making_plugins.pot b/sphinx/templates/tutorials/plugins/editor/making_plugins.pot index 2551a60a58..c7207758c4 100644 --- a/sphinx/templates/tutorials/plugins/editor/making_plugins.pot +++ b/sphinx/templates/tutorials/plugins/editor/making_plugins.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/editor/spatial_gizmos.pot b/sphinx/templates/tutorials/plugins/editor/spatial_gizmos.pot index 31c8093b57..8a6b8a0e67 100644 --- a/sphinx/templates/tutorials/plugins/editor/spatial_gizmos.pot +++ b/sphinx/templates/tutorials/plugins/editor/spatial_gizmos.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/editor/visual_shader_plugins.pot b/sphinx/templates/tutorials/plugins/editor/visual_shader_plugins.pot index 6d76f62446..ab51974844 100644 --- a/sphinx/templates/tutorials/plugins/editor/visual_shader_plugins.pot +++ b/sphinx/templates/tutorials/plugins/editor/visual_shader_plugins.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/gdnative/gdnative-c-example.pot b/sphinx/templates/tutorials/plugins/gdnative/gdnative-c-example.pot index dc2fc0b5f5..dd81cb63dd 100644 --- a/sphinx/templates/tutorials/plugins/gdnative/gdnative-c-example.pot +++ b/sphinx/templates/tutorials/plugins/gdnative/gdnative-c-example.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/gdnative/gdnative-cpp-example.pot b/sphinx/templates/tutorials/plugins/gdnative/gdnative-cpp-example.pot index 9908993e65..af58800bba 100644 --- a/sphinx/templates/tutorials/plugins/gdnative/gdnative-cpp-example.pot +++ b/sphinx/templates/tutorials/plugins/gdnative/gdnative-cpp-example.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/gdnative/index.pot b/sphinx/templates/tutorials/plugins/gdnative/index.pot index b01031adfd..f671d8bf72 100644 --- a/sphinx/templates/tutorials/plugins/gdnative/index.pot +++ b/sphinx/templates/tutorials/plugins/gdnative/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/plugins/index.pot b/sphinx/templates/tutorials/plugins/index.pot index 7e137064b6..cc95eb168d 100644 --- a/sphinx/templates/tutorials/plugins/index.pot +++ b/sphinx/templates/tutorials/plugins/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shading/advanced_postprocessing.pot b/sphinx/templates/tutorials/shading/advanced_postprocessing.pot index 757e3a2856..803ba3614a 100644 --- a/sphinx/templates/tutorials/shading/advanced_postprocessing.pot +++ b/sphinx/templates/tutorials/shading/advanced_postprocessing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shading/godot_shader_language_style_guide.pot b/sphinx/templates/tutorials/shading/godot_shader_language_style_guide.pot index 79430cf94e..d645b61053 100644 --- a/sphinx/templates/tutorials/shading/godot_shader_language_style_guide.pot +++ b/sphinx/templates/tutorials/shading/godot_shader_language_style_guide.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shading/index.pot b/sphinx/templates/tutorials/shading/index.pot index 33eb55eec5..c566b2d3a6 100644 --- a/sphinx/templates/tutorials/shading/index.pot +++ b/sphinx/templates/tutorials/shading/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shading/intro_to_shaders_water_workshop.pot b/sphinx/templates/tutorials/shading/intro_to_shaders_water_workshop.pot index 66ed22218a..e8642a8889 100644 --- a/sphinx/templates/tutorials/shading/intro_to_shaders_water_workshop.pot +++ b/sphinx/templates/tutorials/shading/intro_to_shaders_water_workshop.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shading/migrating_to_godot_shader_language.pot b/sphinx/templates/tutorials/shading/migrating_to_godot_shader_language.pot index a23e782667..9d1f7f0166 100644 --- a/sphinx/templates/tutorials/shading/migrating_to_godot_shader_language.pot +++ b/sphinx/templates/tutorials/shading/migrating_to_godot_shader_language.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shading/screen-reading_shaders.pot b/sphinx/templates/tutorials/shading/screen-reading_shaders.pot index 0249354663..1d6913cb15 100644 --- a/sphinx/templates/tutorials/shading/screen-reading_shaders.pot +++ b/sphinx/templates/tutorials/shading/screen-reading_shaders.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shading/shader_materials.pot b/sphinx/templates/tutorials/shading/shader_materials.pot index ea8b95a89c..c510557302 100644 --- a/sphinx/templates/tutorials/shading/shader_materials.pot +++ b/sphinx/templates/tutorials/shading/shader_materials.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shading/shading_reference/canvas_item_shader.pot b/sphinx/templates/tutorials/shading/shading_reference/canvas_item_shader.pot index 39283ead87..f349997505 100644 --- a/sphinx/templates/tutorials/shading/shading_reference/canvas_item_shader.pot +++ b/sphinx/templates/tutorials/shading/shading_reference/canvas_item_shader.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -38,9 +38,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:17 #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:52 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:109 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:156 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:205 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:110 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:214 msgid "Description" msgstr "" @@ -133,370 +133,377 @@ msgid "Global built-ins are available everywhere, including custom functions." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:52 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:109 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:156 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:205 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:110 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:214 msgid "Built-in" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:54 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:229 msgid "in float **TIME**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:54 -msgid "Global time, in seconds." +msgid "Global time, in seconds. It's subject to the rollover setting (which is 3,600 -1 hour- by default)." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:58 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:59 msgid "Vertex built-ins" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:61 msgid "Vertex data (``VERTEX``) is presented in local space (pixel coordinates, relative to the camera). If not written to, these values will not be modified and be passed through as they came." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:63 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:64 msgid "The user can disable the built-in modelview transform (projection will still happen later) and do it manually with the following code:" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:76 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:77 msgid "``WORLD_MATRIX`` is actually a modelview matrix. It takes input in local space and transforms it into view space." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:79 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:80 msgid "In order to get the world space coordinates of a vertex, you have to pass in a custom uniform like so:" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:86 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:87 msgid "Then, in your vertex shader:" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:97 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:98 msgid "``world_position`` can then be used in either the vertex or fragment functions." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:99 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:100 msgid "Other built-ins, such as UV and COLOR, are also passed through to the fragment function if not modified." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:101 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:102 msgid "For instancing, the INSTANCE_CUSTOM variable contains the instance custom data. When using particles, this information is usually:" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:104 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 msgid "**x**: Rotation angle in radians." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:106 msgid "**y**: Phase during lifetime (0 to 1)." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:106 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:107 msgid "**z**: Animation frame." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:111 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:112 msgid "in mat4 **WORLD_MATRIX**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:111 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:112 msgid "Image space to view space transform." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:113 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:114 msgid "in mat4 **EXTRA_MATRIX**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:113 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:114 msgid "Extra transform." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:115 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:116 msgid "in mat4 **PROJECTION_MATRIX**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:115 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:116 msgid "View space to clip space transform." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:117 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:118 msgid "in vec4 **INSTANCE_CUSTOM**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:117 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:118 msgid "Instance custom data." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:119 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:188 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:120 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:197 msgid "in bool **AT_LIGHT_PASS**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:119 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:188 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:120 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:197 msgid "``true`` if this is a light pass." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:121 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:122 msgid "inout vec2 **VERTEX**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:121 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:122 msgid "Vertex, in image space." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:123 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:178 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:221 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:124 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:187 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:235 msgid "in vec2 **TEXTURE_PIXEL_SIZE**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:123 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:178 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:221 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:124 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:187 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:235 msgid "Normalized pixel size of default 2D texture. For a Sprite with a texture of size 64x32px, **TEXTURE_PIXEL_SIZE** = :code:`vec2(1/64, 1/32)`" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:127 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:128 msgid "inout vec2 **UV**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:127 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:128 msgid "UV." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:129 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:171 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:130 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:176 msgid "inout vec4 **COLOR**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:129 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:130 msgid "Color from vertex primitive." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:131 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:132 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:179 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:229 +msgid "in vec4 **MODULATE**" +msgstr "" + +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:132 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:179 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:229 +msgid "Final modulate color. If used, **COLOR** will not be multiplied by modulate automatically after the fragment function." +msgstr "" + +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:136 msgid "inout float **POINT_SIZE**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:131 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:136 msgid "Point size for point drawing." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:135 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:140 msgid "Fragment built-ins" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:137 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:142 msgid "Certain Nodes (for example, :ref:`Sprites `) display a texture by default. However, when a custom fragment function is attached to these nodes, the texture lookup needs to be done manually. Godot does not provide the texture color in the ``COLOR`` built-in variable; to read the texture color for such nodes, use:" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:146 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:151 msgid "This differs from the behavior of the built-in normal map. If a normal map is attached, Godot uses it by default and assigns its value to the built-in ``NORMAL`` variable. If you are using a normal map meant for use in 3D, it will appear inverted. In order to use it in your shader, you must assign it to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D and overwriting ``NORMAL``." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:158 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:207 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:163 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:216 msgid "in vec4 **FRAGCOORD**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:158 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:207 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:163 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:216 msgid "Coordinate of pixel center. In screen space. ``xy`` specifies position in window, ``z`` specifies fragment depth if ``DEPTH`` is not used. Origin is lower-left." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:162 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:167 msgid "inout vec3 **NORMAL**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:162 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:167 msgid "Normal read from **NORMAL_TEXTURE**. Writable." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:164 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:169 msgid "out vec3 **NORMALMAP**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:164 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:169 msgid "Configures normal maps meant for 3D for use in 2D. If used, overwrites **NORMAL**." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:167 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:172 msgid "inout float **NORMALMAP_DEPTH**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:167 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:172 msgid "Normalmap depth for scaling." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:169 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:214 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:174 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:223 msgid "in vec2 **UV**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:169 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:174 msgid "UV from vertex function." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:171 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:176 msgid "Color from vertex function and output fragment color. If unused, will be set to **TEXTURE** color." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:174 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:183 msgid "in sampler2D **TEXTURE**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:174 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:183 msgid "Default 2D texture." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:176 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:185 msgid "in sampler2D **NORMAL_TEXTURE**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:176 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:185 msgid "Default 2D normal texture." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:182 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:225 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:191 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:239 msgid "in vec2 **SCREEN_UV**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:182 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:191 msgid "Screen UV for use with **SCREEN_TEXTURE**." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:184 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:193 msgid "in vec2 **SCREEN_PIXEL_SIZE**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:184 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:193 msgid "Size of individual pixels. Equal to inverse of resolution." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:186 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:227 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:195 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:241 msgid "in vec2 **POINT_COORD**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:186 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:195 msgid "Coordinate for drawing points." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:190 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:199 msgid "in sampler2D **SCREEN_TEXTURE**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:190 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:199 msgid "Screen texture, mipmaps contain gaussian blurred versions." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:194 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:203 msgid "Light built-ins" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:196 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:205 msgid "Light processor functions work differently in 2D than they do in 3D. In CanvasItem shaders, the shader is called once for the object being drawn, and then once for each light touching that object in the scene. Use render_mode ``unshaded`` if you do not want any light passes to occur for that object. Use render_mode ``light_only`` if you only want light passes to occur for that object; this can be useful when you only want the object visible where it is covered by light." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:202 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:211 msgid "When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be ``true``." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:211 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:220 msgid "in vec3 **NORMAL**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:211 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:220 msgid "Input Normal. Although this value is passed in, **normal calculation still happens outside of this function**." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:214 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:223 msgid "UV from vertex function, equivalent to the UV in the fragment function." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:216 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:225 msgid "in vec4 **COLOR**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:216 -msgid "Input Color. This is the output of the fragment function with final modulation applied." +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:225 +msgid "Input Color. This is the output of the fragment function (with final modulation applied, if **MODULATE** is not used in any function of the shader)." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:219 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:233 msgid "sampler2D **TEXTURE**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:219 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:233 msgid "Current texture in use for CanvasItem." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:225 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:239 msgid "**SCREEN_TEXTURE** Coordinate (for using with screen texture)." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:227 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:241 msgid "UV for Point Sprite." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:229 -msgid "Global time in seconds." -msgstr "" - -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:231 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:243 msgid "inout vec2 **LIGHT_VEC**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:231 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:243 msgid "Vector from light to fragment in local coordinates. It can be modified to alter illumination direction when normal maps are used." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:234 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:246 msgid "inout vec2 **SHADOW_VEC**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:234 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:246 msgid "Vector from light to fragment in local coordinates. It can be modified to alter shadow computation." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:237 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:249 msgid "inout float **LIGHT_HEIGHT**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:237 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:249 msgid "Height of Light. Only effective when normals are used." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:239 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:251 msgid "inout vec4 **LIGHT_COLOR**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:239 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:251 msgid "Color of Light." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:241 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:253 msgid "in vec2 **LIGHT_UV**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:241 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:253 msgid "UV for Light texture." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:243 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:255 msgid "out vec4 **SHADOW_COLOR**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:243 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:255 msgid "Shadow Color of Light." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:245 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:257 msgid "inout vec4 **LIGHT**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:245 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:257 msgid "Value from the Light texture and output color. Can be modified. If not used, the light function is ignored." msgstr "" diff --git a/sphinx/templates/tutorials/shading/shading_reference/index.pot b/sphinx/templates/tutorials/shading/shading_reference/index.pot index 370e095695..55f06faa35 100644 --- a/sphinx/templates/tutorials/shading/shading_reference/index.pot +++ b/sphinx/templates/tutorials/shading/shading_reference/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shading/shading_reference/particle_shader.pot b/sphinx/templates/tutorials/shading/shading_reference/particle_shader.pot index 84dd149a61..3100bf9a8a 100644 --- a/sphinx/templates/tutorials/shading/shading_reference/particle_shader.pot +++ b/sphinx/templates/tutorials/shading/shading_reference/particle_shader.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shading/shading_reference/shaders.pot b/sphinx/templates/tutorials/shading/shading_reference/shaders.pot index 131c18df8f..5a47a8dcce 100644 --- a/sphinx/templates/tutorials/shading/shading_reference/shaders.pot +++ b/sphinx/templates/tutorials/shading/shading_reference/shaders.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shading/shading_reference/shading_language.pot b/sphinx/templates/tutorials/shading/shading_reference/shading_language.pot index 6baf27cd11..a61905b556 100644 --- a/sphinx/templates/tutorials/shading/shading_reference/shading_language.pot +++ b/sphinx/templates/tutorials/shading/shading_reference/shading_language.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -739,7 +739,7 @@ msgid "**int, float**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 -msgid "hint_range(min,max [,step])" +msgid "hint_range(min, max[, step])" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 diff --git a/sphinx/templates/tutorials/shading/shading_reference/spatial_shader.pot b/sphinx/templates/tutorials/shading/shading_reference/spatial_shader.pot index 1d62bdfc1d..796fe06f23 100644 --- a/sphinx/templates/tutorials/shading/shading_reference/spatial_shader.pot +++ b/sphinx/templates/tutorials/shading/shading_reference/spatial_shader.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shading/visual_shaders.pot b/sphinx/templates/tutorials/shading/visual_shaders.pot index 7c951dc86a..2b60cc4fe5 100644 --- a/sphinx/templates/tutorials/shading/visual_shaders.pot +++ b/sphinx/templates/tutorials/shading/visual_shaders.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shading/your_first_shader/index.pot b/sphinx/templates/tutorials/shading/your_first_shader/index.pot index 4c8e3dd16c..e058c60f28 100644 --- a/sphinx/templates/tutorials/shading/your_first_shader/index.pot +++ b/sphinx/templates/tutorials/shading/your_first_shader/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shading/your_first_shader/what_are_shaders.pot b/sphinx/templates/tutorials/shading/your_first_shader/what_are_shaders.pot index 6020fbf1f4..415c698db9 100644 --- a/sphinx/templates/tutorials/shading/your_first_shader/what_are_shaders.pot +++ b/sphinx/templates/tutorials/shading/your_first_shader/what_are_shaders.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shading/your_first_shader/your_first_canvasitem_shader.pot b/sphinx/templates/tutorials/shading/your_first_shader/your_first_canvasitem_shader.pot index 79cf3f8f99..d493841eea 100644 --- a/sphinx/templates/tutorials/shading/your_first_shader/your_first_canvasitem_shader.pot +++ b/sphinx/templates/tutorials/shading/your_first_shader/your_first_canvasitem_shader.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shading/your_first_shader/your_first_spatial_shader.pot b/sphinx/templates/tutorials/shading/your_first_shader/your_first_spatial_shader.pot index d3d6193f9c..be675ae6dd 100644 --- a/sphinx/templates/tutorials/shading/your_first_shader/your_first_spatial_shader.pot +++ b/sphinx/templates/tutorials/shading/your_first_shader/your_first_spatial_shader.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/shading/your_first_shader/your_second_spatial_shader.pot b/sphinx/templates/tutorials/shading/your_first_shader/your_second_spatial_shader.pot index 67a95c3807..0b3b91a9b1 100644 --- a/sphinx/templates/tutorials/shading/your_first_shader/your_second_spatial_shader.pot +++ b/sphinx/templates/tutorials/shading/your_first_shader/your_second_spatial_shader.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/threads/index.pot b/sphinx/templates/tutorials/threads/index.pot index 5cd80ce6ef..b6bc6e50f3 100644 --- a/sphinx/templates/tutorials/threads/index.pot +++ b/sphinx/templates/tutorials/threads/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/threads/thread_safe_apis.pot b/sphinx/templates/tutorials/threads/thread_safe_apis.pot index e9d019b987..cfc7d4fcc0 100644 --- a/sphinx/templates/tutorials/threads/thread_safe_apis.pot +++ b/sphinx/templates/tutorials/threads/thread_safe_apis.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: ../../docs/tutorials/threads/thread_safe_apis.rst:4 -msgid "Thread safe APIs" +msgid "Thread-safe APIs" msgstr "" #: ../../docs/tutorials/threads/thread_safe_apis.rst:7 @@ -37,7 +37,7 @@ msgid "Global scope" msgstr "" #: ../../docs/tutorials/threads/thread_safe_apis.rst:17 -msgid ":ref:`Global Scope` singletons are all thread safe. Accessing servers from threads is supported (for VisualServer and Physics servers, ensure threaded or thread safe operation is enabled in the project settings!)." +msgid ":ref:`Global Scope` singletons are all thread-safe. Accessing servers from threads is supported (for VisualServer and Physics servers, ensure threaded or thread-safe operation is enabled in the project settings!)." msgstr "" #: ../../docs/tutorials/threads/thread_safe_apis.rst:19 @@ -49,7 +49,7 @@ msgid "Scene tree" msgstr "" #: ../../docs/tutorials/threads/thread_safe_apis.rst:24 -msgid "Interacting with the active scene tree is **NOT** thread safe. Make sure to use mutexes when sending data between threads. If you want to call functions from a thread, the *call_deferred* function may be used:" +msgid "Interacting with the active scene tree is **NOT** thread-safe. Make sure to use mutexes when sending data between threads. If you want to call functions from a thread, the *call_deferred* function may be used:" msgstr "" #: ../../docs/tutorials/threads/thread_safe_apis.rst:33 @@ -77,6 +77,6 @@ msgid "Resources" msgstr "" #: ../../docs/tutorials/threads/thread_safe_apis.rst:60 -msgid "Modifying a unique resource from multiple threads is not supported, but loading them on threads or handling a reference is perfectly supported. Scenes, textures, meshes, etc. Can be loaded and manipulated on threads, then added to the active scene in the main thread." +msgid "Modifying a unique resource from multiple threads is not supported. However handling references on multiple threads is supported, hence loading resources on a thread is as well - scenes, textures, meshes, etc - can be loaded and manipulated on a thread and then added to the active scene on the main thread. The limitation here is as described above, one must be careful not to load the same resource from multiple threads at once, therefore it is easiest to use **one** thread for loading and modifying resources, and then the main thread for adding them." msgstr "" diff --git a/sphinx/templates/tutorials/threads/using_multiple_threads.pot b/sphinx/templates/tutorials/threads/using_multiple_threads.pot index 118b025ba5..11198172f1 100644 --- a/sphinx/templates/tutorials/threads/using_multiple_threads.pot +++ b/sphinx/templates/tutorials/threads/using_multiple_threads.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -53,30 +53,30 @@ msgid "Mutexes" msgstr "" #: ../../docs/tutorials/threads/using_multiple_threads.rst:53 -msgid "Accessing objects or data from multiple threads is not always supported (if you do it, it will cause unexpected behaviors or crashes). Read the :ref:`Thread safe APIs` to understand which engine APIs support multiple thread access." +msgid "Accessing objects or data from multiple threads is not always supported (if you do it, it will cause unexpected behaviors or crashes). Read the :ref:`doc_thread_safe_apis` documentation to understand which engine APIs support multiple thread access." msgstr "" -#: ../../docs/tutorials/threads/using_multiple_threads.rst:57 +#: ../../docs/tutorials/threads/using_multiple_threads.rst:58 msgid "When processing your own data or calling your own functions, as a rule, try to avoid accessing the same data directly from different threads. You may run into synchronization problems, as the data is not always updated between CPU cores when modified. Always use a :ref:`Mutex` when accessing a piece of data from different threads." msgstr "" -#: ../../docs/tutorials/threads/using_multiple_threads.rst:63 +#: ../../docs/tutorials/threads/using_multiple_threads.rst:64 msgid "When calling :ref:`Mutex.lock()`, a thread ensures that all other threads will be blocked (put on suspended state) if they try to *lock* the same mutex. When the mutex is unlocked by calling :ref:`Mutex.unlock()`, the other threads will be allowed to proceed with the lock (but only one at a time)." msgstr "" -#: ../../docs/tutorials/threads/using_multiple_threads.rst:69 +#: ../../docs/tutorials/threads/using_multiple_threads.rst:70 msgid "Here is an example of using a Mutex:" msgstr "" -#: ../../docs/tutorials/threads/using_multiple_threads.rst:101 +#: ../../docs/tutorials/threads/using_multiple_threads.rst:102 msgid "Semaphores" msgstr "" -#: ../../docs/tutorials/threads/using_multiple_threads.rst:103 +#: ../../docs/tutorials/threads/using_multiple_threads.rst:104 msgid "Sometimes you want your thread to work *\"on demand\"*. In other words, tell it when to work and let it suspend when it isn't doing anything. For this, :ref:`Semaphores` are used. The function :ref:`Semaphore.wait()` is used in the thread to suspend it until some data arrives." msgstr "" -#: ../../docs/tutorials/threads/using_multiple_threads.rst:109 +#: ../../docs/tutorials/threads/using_multiple_threads.rst:110 msgid "The main thread, instead, uses :ref:`Semaphore.post()` to signal that data is ready to be processed:" msgstr "" diff --git a/sphinx/templates/tutorials/viewports/custom_postprocessing.pot b/sphinx/templates/tutorials/viewports/custom_postprocessing.pot index b06db82f12..91c9789223 100644 --- a/sphinx/templates/tutorials/viewports/custom_postprocessing.pot +++ b/sphinx/templates/tutorials/viewports/custom_postprocessing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/viewports/index.pot b/sphinx/templates/tutorials/viewports/index.pot index e915c83972..9cfdaa9b99 100644 --- a/sphinx/templates/tutorials/viewports/index.pot +++ b/sphinx/templates/tutorials/viewports/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/viewports/multiple_resolutions.pot b/sphinx/templates/tutorials/viewports/multiple_resolutions.pot index f98f404820..f721c55237 100644 --- a/sphinx/templates/tutorials/viewports/multiple_resolutions.pot +++ b/sphinx/templates/tutorials/viewports/multiple_resolutions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/viewports/using_viewport_as_texture.pot b/sphinx/templates/tutorials/viewports/using_viewport_as_texture.pot index f465d66f6b..ec96c9c9b8 100644 --- a/sphinx/templates/tutorials/viewports/using_viewport_as_texture.pot +++ b/sphinx/templates/tutorials/viewports/using_viewport_as_texture.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/viewports/viewports.pot b/sphinx/templates/tutorials/viewports/viewports.pot index 88e1502589..6769be5967 100644 --- a/sphinx/templates/tutorials/viewports/viewports.pot +++ b/sphinx/templates/tutorials/viewports/viewports.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/vr/developing_for_oculus_quest.pot b/sphinx/templates/tutorials/vr/developing_for_oculus_quest.pot new file mode 100644 index 0000000000..72ffc8785d --- /dev/null +++ b/sphinx/templates/tutorials/vr/developing_for_oculus_quest.pot @@ -0,0 +1,142 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2020, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0) +# This file is distributed under the same license as the Godot Engine package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine latest\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:4 +msgid "Developing for Oculus Quest" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:7 +msgid "Introduction" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:9 +msgid "This tutorial goes over how to get started developing for the *Oculus Quest* with an official Godot plugin." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:12 +msgid "Before starting, there are two things you need to do:" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:14 +msgid "First you need to go through the steps on the :ref:`doc_exporting_for_android` page. This leads you through installing the toolset that Godot needs to export to Android devices." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:18 +msgid "Next you need the Quest plugin. You can get it from the Asset Library or manually download it from `here `__." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:22 +msgid "Setting Up Godot" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:24 +msgid "To get started open Godot and create a new project." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:28 +msgid "Make sure to choose the ``GLES2`` renderer. Due to the Quest's GPU this backend is far better suited for the Quest." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:31 +msgid "Copy the addons folder from the Oculus Mobile asset into your Godot project. Your project tree should look similar to this:" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:36 +msgid "Now you can start building the main scene:" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:38 +msgid "Add an :ref:`ARVROrigin ` node first." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:39 +msgid "Then add three child nodes to the origin node, one :ref:`ARVRCamera ` and two :ref:`ARVRController ` nodes." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:40 +msgid "Assign controller ID 1 to the first :ref:`ARVRController ` and rename that to ``LeftHand``." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:41 +msgid "Assign controller ID 2 to the second :ref:`ARVRController ` and rename that to ``RightHand``." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:42 +msgid "Finally add a :ref:`MeshInstance ` as a child node to our first :ref:`ARVRController ` and create a box shape, resize the box so each side is set to 0.1. Now duplicate the :ref:`MeshInstance ` and move it to the second :ref:`ARVRController ` node. These will stand in for our controllers." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:46 +msgid "Now add a script to the main node and add the following code:" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:73 +msgid "Before you can export this project to the Quest you need to do three more things." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:76 +msgid "First go into the project settings and make sure that the main scene is the scene we run. Godot does not ask you to set this on export." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:81 +msgid "Then go into the export menu and configure a new Android export. if you still haven't gone through the :ref:`doc_exporting_for_android` page do it now. If you didn't you'll have some red messages on this screen." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:86 +msgid "If you did you can forge ahead and make a few small changes to the export settings. First change the XR Mode to ``Oculus Mobile VR``. Then change the Degrees of Freedom mode to ``6DOF``." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:92 +msgid "Now save and close the export window." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:95 +msgid "Setting Up Your Quest" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:97 +msgid "Finally take out your phone, when you got your Quest you needed to install an Oculus app on it and link it up to your Quest. Start the Oculus app. Press the settings cogwheel on the bottom right hand side. Select your Quest:" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:104 +msgid "Select \"More Settings\", and select \"Developer Mode\":" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:108 +msgid "Now turn developer mode on:" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:112 +msgid "This allows you to deploy your games to the Quest." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:114 +msgid "Connect the Quest to your PC with the provided USB cable. Put the Quest on, it may give a few dialogs to give the PC permission to deploy apps. Now hit the little Android button that should be visible in the top right hand side of your Godot window. It should build your game and export it to the Quest." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:120 +msgid "The above does the bare minimum to get your project running on the Quest, it's not very exciting. Holger Dammertz has made a great toolkit for the quest that contains a lot of scenes to get help you on your way including really nice controller meshes." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:125 +msgid "You can find the toolkit `here `__." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:127 +msgid "If you want to help out with improving the plugin please join us `here `__." +msgstr "" + diff --git a/sphinx/templates/tutorials/vr/index.pot b/sphinx/templates/tutorials/vr/index.pot index 7def2d6bdc..0abc42da8d 100644 --- a/sphinx/templates/tutorials/vr/index.pot +++ b/sphinx/templates/tutorials/vr/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/vr/vr_primer.pot b/sphinx/templates/tutorials/vr/vr_primer.pot index 700b45d627..b7cdbefe13 100644 --- a/sphinx/templates/tutorials/vr/vr_primer.pot +++ b/sphinx/templates/tutorials/vr/vr_primer.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/vr/vr_starter_tutorial/index.pot b/sphinx/templates/tutorials/vr/vr_starter_tutorial/index.pot index 564304e6d9..08ba0615bb 100644 --- a/sphinx/templates/tutorials/vr/vr_starter_tutorial/index.pot +++ b/sphinx/templates/tutorials/vr/vr_starter_tutorial/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx/templates/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.pot b/sphinx/templates/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.pot index ccb467e35c..d914224e65 100644 --- a/sphinx/templates/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.pot +++ b/sphinx/templates/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -169,7 +169,7 @@ msgid "The :ref:`ARVRController ` node represents a VR con msgstr "" #: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:101 -msgid "To summerize:" +msgid "To summarize:" msgstr "" #: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:103 @@ -200,798 +200,794 @@ msgstr "" msgid "Now that we have gone over the VR nodes, let's start working on the project. While in ``Game.tscn``, select the ``Game`` node and make a new script called ``Game.gd``. In the ``Game.gd`` file, add the following code:" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:159 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:157 msgid "Let's go over what this code does." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:163 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:161 msgid "In the ``_ready`` function, we first get the OpenVR VR interface using the ``find_interface`` function in the :ref:`ARVRServer ` and assign it to a variable called `VR`. If the :ref:`ARVRServer ` finds an interface with the name OpenVR, it will return it, otherwise it will return ``null``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:166 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:164 msgid "The OpenVR VR interface is not included with Godot by default. You will need to download the OpenVR asset from the `Asset Library `_ or `GitHub `_." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:169 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:167 msgid "The code then combines two conditionals, one to check if the `VR` variable is NOT null (``if VR``) and another calls the initialize function, which returns a boolean based on whether the OpenVR interface was able to initialize or not. If both of these conditionals return true, then we can turn the main Godot :ref:`Viewport ` into an ARVR viewport." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:173 -msgid "If the VR interface initialized successfully, we then get the root :ref:`Viewport ` and set the `arvr` property to ``true``. This will tell Godot to use the initialized ARVR interface to drive the :ref:`Viewport ` display. After setting the ``arvr`` property to ``true``, we set the ``hdr`` property to ``false``. We do this because most of the VR headsets do not currently support HDR rendering." +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:171 +msgid "If the VR interface initialized successfully, we then get the root :ref:`Viewport ` and set the `arvr` property to ``true``. This will tell Godot to use the initialized ARVR interface to drive the :ref:`Viewport ` display." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:177 -msgid "HDR support will be available for VR in Godot 3.2." -msgstr "" - -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:179 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:174 msgid "Finally, we disable VSync so the Frames Per Second (FPS) is not capped by the computer monitor. After this we tell Godot to render at ``90`` frames per second, which is the standard for most VR headsets. Without disabling VSync, the normal computer monitor may limit the frame rate of the VR headset to the frame rate of the computer monitor." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:182 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:177 msgid "In the project settings, under the ``Physics->Common`` tab, the physics FPS has been set to ``90``. This makes the physics engine run at the same frame rate as the VR display, which makes physics reactions look smoother when in VR." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:187 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:182 msgid "That is all we need to do for Godot to launch OpenVR within the project! Go ahead and give it a try if you want. Assuming everything works, you will be able to look around the world. If you have a VR headset with room tracking, then you will be able to move around the scene within the limits of the room tracking." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:191 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:186 msgid "Creating the controllers" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:195 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:190 msgid "Right now all that the VR user can do is stand around, which isn't really what we are going for unless we are working on a VR film. Lets write the code for the VR controllers. We are going to write all the code for the VR controllers in one go, so the code is rather long. That said, once we are finished you will be able to teleport around the scene, artificially move using the touchpad/joystick on the VR controller, and be able to pick up, drop, and throw :ref:`RigidBody `-based nodes." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:200 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:195 msgid "First we need to open the scene used for the VR controllers. ``Left_Controller.tscn`` or ``Right_Controller.tscn``. Let's briefly go over how the scene is setup." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:203 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:198 msgid "How the VR controller scene is setup" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:205 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:200 msgid "In both scenes the root node is a ARVRController node. The only difference is that the ``Left_Controller`` scene has the ``Controller Id`` property set to ``1`` while the ``Right_Controller`` has the ``Controller Id`` property set to ``2``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:208 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:203 msgid "The :ref:`ARVRServer ` attempts to use these two IDs for the left and right VR controllers. For VR systems that support more than 2 controllers/tracked-objects, these IDs may need adjusting." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:211 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:206 msgid "Next is the ``Hand`` :ref:`MeshInstance ` node. This node is used to display the hand mesh that will be used when the VR controller is not holding onto a :ref:`RigidBody ` node. The hand in the ``Left_Controller`` scene is a left hand, while the hand on the ``Right_Controller`` scene is a right hand." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:214 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:209 msgid "The node named ``Raycast`` is a :ref:`Raycast ` node that is used for aiming where to teleport to when the VR controller is teleporting. The length of the :ref:`Raycast ` is set to ``-16`` on the Y axis and is rotated so that it points out of the pointer finger of the hand. The ``Raycast`` node has a single child node, ``Mesh``, that is a :ref:`MeshInstance `. This is used for visually showing where the teleportation :ref:`Raycast ` is aiming." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:218 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:213 msgid "The node named ``Area`` is a :ref:`Area ` node will be used for grabbing :ref:`RigidBody `-based nodes when the VR controller grab mode is set to ``AREA``. The ``Area`` node has a single child node, ``CollisionShape``, that defines a sphere :ref:`CollisionShape `. When the VR controller is not holding any objects and the grab button is pressed, the first :ref:`RigidBody `-based node within the ``Area`` node will be picked up." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:222 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:217 msgid "Next is a :ref:`Position3D ` node called ``Grab_Pos``. This is used to define the position that grabbed :ref:`RigidBody ` nodes will follow then they are held by the VR controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:225 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:220 msgid "A large :ref:`Area ` node called ``Sleep_Area`` is used to disable sleeping for any RigidBody nodes within its :ref:`CollisionShape `, simple called ``CollisionShape``. This is needed because if a :ref:`RigidBody ` node falls asleep, then the VR controller will be unable to grab it. By using ``Sleep_Area``, we can write code that makes any :ref:`RigidBody ` node within it not able to sleep, therefore allowing the VR controller to grab it." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:229 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:224 msgid "An :ref:`AudioStreamPlayer3D ` node called ``AudioStreamPlayer3D`` has a sound loaded that we will use when an object has been picked up, dropped or thrown by the VR controller. While this is not necessary for the functionality of the VR controller, it makes grabbing and dropping objects feel more natural." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:232 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:227 msgid "Finally, the last nodes are the ``Grab_Cast`` node and it's only child node, ``Mesh``. The ``Grab_Cast`` node will be used for grabbing :ref:`RigidBody `-based nodes when the VR controller grab mode is set to ``RAYCAST``. This will allow the VR controller to grab objects that are just slightly out of reach using a Raycast. The ``Mesh`` node is used for visually showing where the teleportation :ref:`Raycast ` is aiming." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:236 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:231 msgid "That is a quick overview of how the VR controller scenes are setup, and how we will be using the nodes to provide the functionality for them. Now that we have looked at the VR controller scene, let's write the code that will drive them." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:240 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:235 msgid "The code for the VR controllers" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:242 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:237 msgid "Select the root node of the scene, either ``Right_Controller`` or ``Left_Controller``, and make a new script called ``VR_Controller.gd``. Both scenes will be using the same script, so it doesn't matter which you use first. With ``VR_Controller.gd`` opened, add the following code:" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:245 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:240 msgid "You can copy and paste the code from this page directly into the script editor." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:247 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:242 msgid "If you do this, all the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:249 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:244 msgid "To convert the spaces to tabs in the script editor, click the ``Edit`` menu and select ``Convert Indent To Tabs``. This will convert all the spaces into tabs. You can select ``Convert Indent To Spaces`` to convert tabs back into spaces." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:540 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:535 msgid "This is quite a bit of code to go through. Let's go through what the code does step-by-step." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:543 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:538 msgid "Explaining the VR controller code" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:545 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:540 msgid "First, let's go through all the class variables in the script:" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:547 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:542 msgid "``controller_velocity``: A variable to hold a rough approximation of the VR controller's velocity." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:548 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:543 msgid "``prior_controller_position``: A variable to hold the VR controller's last position in 3D space." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:549 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:544 msgid "``prior_controller_velocities``: An Array to hold the last 30 calculated VR controller velocities. This is used to smooth the velocity calculations over time." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:550 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:545 msgid "``held_object``: A variable to hold a reference to the object the VR controller is holding. If the VR controller is not holding any objects, this variable will be ``null``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:551 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:546 msgid "``held_object_data``: A dictionary to hold data for the :ref:`RigidBody ` node being held by the VR controller. This is used to reset the :ref:`RigidBody `'s data when it is no longer held." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:552 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:547 msgid "``grab_area``: A variable to hold the :ref:`Area ` node used to grab objects with the VR controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:553 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:548 msgid "``grab_raycast``: A variable to hold the :ref:`Raycast ` node used to grab objects with the VR controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:554 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:549 msgid "``grab_mode``: A variable to define the grab mode the VR controller is using. There are only two modes for grabbing objects in this tutorial, ``AREA`` and ``RAYCAST``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:555 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:550 msgid "``grab_pos_node``: A variable to hold the node that will be used to update the position and rotation of held objects." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:556 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:551 msgid "``hand_mesh``: A variable to hold the :ref:`MeshInstance ` node that contains the hand mesh for the VR controller. This mesh will be shown when the VR controller is not holding anything." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:557 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:552 msgid "``hand_pickup_drop_sound``: A variable to hold the :ref:`AudioStreamPlayer3D ` node that contains the pickup/drop sound." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:558 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:553 msgid "``teleport_pos``: A variable to hold the position the player will be teleported to when the VR controller teleports the player." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:559 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:554 msgid "``teleport_mesh``: A variable to hold the :ref:`MeshInstance ` node used to show where the player is teleporting to." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:560 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:555 msgid "``teleport_button_down``: A variable used to track whether the controller's teleport button is held down. This will be used to detect if this VR controller is trying to teleport the player." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:561 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:556 msgid "``teleport_raycast``: A variable to hold the :ref:`Raycast ` node used to calculate the teleport position. This node also has a :ref:`MeshInstance ` that acts as a 'laser sight' for aiming." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:562 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:557 msgid "``CONTROLLER_DEADZONE``: A constant to define the deadzone for both the trackpad and the joystick on the VR controller. See the note below for more information." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:563 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:558 msgid "``MOVEMENT_SPEED``: A constant to define the speed the player moves at when using the trackpad/joystick to move artificially." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:564 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:559 msgid "``CONTROLLER_RUMBLE_FADE_SPEED``: A constant to define how fast the VR controller rumble fades." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:565 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:560 msgid "``directional_movement``: A variable to hold whether this VR controller is moving the player using the touchpad/joystick." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:567 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:562 msgid "You can find a great article explaining all about how to handle touchpad/joystick dead zones `here `__." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:569 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:564 msgid "We are using a translated version of the scaled radial dead zone code provided in that article for the VR controller's joystick/touchpad. The article is a great read, and I highly suggest giving it a look!" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:572 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:567 msgid "That is quite a few class variables. Most of them are used to hold references to nodes we will need throughout the code. Next let's start looking at the functions, starting with the ``_ready`` function." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:578 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:573 msgid "``_ready`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:580 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:575 msgid "First we tell Godot to silence the warnings about not using the values returned by the ``connect`` function. We will not need the returned values for this tutorial." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:583 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:578 msgid "Next we get the :ref:`Raycast ` node we are going to use for determining the position for teleporting and assign it to the ``teleport_raycast`` variable. We then get the :ref:`MeshInstance ` node that we will use to show where the player will be teleporting to. The node we are using for teleporting is a child of the ``Game`` scene. We do this so the teleport mesh node is not effected by changes in the VR controller, and so the teleport mesh can be used by both VR controllers." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:587 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:582 msgid "Then the ``teleport_button_down`` variable is set to false, ``teleport_mesh.visible`` is set to ``false``, and ``teleport_raycast.visible`` is set to ``false``. This sets up the variables for teleporting the player into their initial, not teleporting the player, state." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:590 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:585 msgid "The code then gets the ``grab_area`` node, the ``grab_raycast`` node, and the ``grab_pos_node`` node and assigns them all to their respective variables for use later." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:592 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:587 msgid "Next the ``grab_mode`` is set to ``AREA`` so the VR controller will attempt to grab objects using the :ref:`Area ` node defined in ``grab_area`` when the VR controller's grab/grip button is pressed. We also set the ``grab_raycast`` node's ``visible`` property to ``false`` so the 'laser sight' child node of ``grab_raycast`` is not visible." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:595 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:590 msgid "After that we connect the ``body_entered`` and ``body_exited`` signals from the ``Sleep_Area`` node in the VR controller to the ``sleep_area_entered`` and ``sleep_area_exited`` functions. The ``sleep_area_entered`` and ``sleep_area_exited`` functions will be used to make :ref:`RigidBody ` nodes unable to sleep when nearby the VR controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:598 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:593 msgid "Then the ``hand_mesh`` and ``hand_pickup_drop_sound`` nodes are gotten and assigned them to their respective variables for use later." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:600 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:595 msgid "Finally, the ``button_pressed`` and ``button_release`` signals in the :ref:`ARVRController ` node, which the VR controller extends, are connected to the ``button_pressed`` and ``button_released`` functions respectively. This means that when a button on the VR controller is pressed or released, the ``button_pressed`` or ``button_released`` functions defined in this script will be called." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:606 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:601 msgid "``_physics_process`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:608 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:603 msgid "First we check to see if the ``rumble`` variable is more than zero. If the ``rumble`` variable, which is a property of the :ref:`ARVRController ` node, is more than zero then the VR controller rumbles." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:611 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:606 msgid "If the ``rumble`` variable is more than zero, then we reduce the rumble by ``CONTROLLER_RUMBLE_FADE_SPEED`` every second by subtracting ``CONTROLLER_RUMBLE_FADE_SPEED`` multiplied by delta. There is then a ``if`` condition to check if ``rumble`` is less than zero, which sets ``rumble`` to zero if its value is less than zero." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:614 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:609 msgid "This small section of code is all we need for reducing the VR controller's rumble. Now when we set ``rumble`` to a value, this code will automatically make it fade over time." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:618 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:613 msgid "The first section of code checks to see if the ``teleport_button_down`` variable is equal to ``true``, which means this VR controller is trying to teleport." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:620 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:615 msgid "If ``teleport_button_down`` is equal to ``true``, we force the ``teleport_raycast`` :ref:`Raycast ` node to update using the ``force_raycast_update`` function. The ``force_raycast_update`` function will update the properties within the :ref:`Raycast ` node with the latest version of the physics world." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:623 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:618 msgid "The code then checks to see if the ``teleport_raycast`` collided with anything by checking of the ``is_colliding`` function in ``teleport_raycast`` is true. If the :ref:`Raycast ` collided with something, we then check to see if the :ref:`PhysicsBody ` the raycast collided with is a :ref:`StaticBody ` or not. We then check to see if the collision normal vector returned by the raycast is greater than or equal to ``0.85`` on the Y axis." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:627 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:622 msgid "We do this because we do not want the user to be able to teleport onto RigidBody nodes and we only want the player to be able to teleport on floor-like surfaces." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:629 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:624 msgid "If all these conditions are met, then we assign the ``teleport_pos`` variable to the ``get_collision_point`` function in ``teleport_raycast``. This will assign ``teleport_pos`` to the position the raycast collided at in world space. We then move the ``teleport_mesh`` to the world position stored in ``teleport_pos``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:632 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:627 msgid "This section of code will get the position the player is aiming at with the teleportation raycast and update the teleportation mesh, giving a visual update on where the user will be teleporting to when the release the teleport button." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:637 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:632 msgid "The next section of code first checks to see if the VR controller is active through the ``get_is_active`` function, which is defined by :ref:`ARVRController `. If the VR controller is active, then it calls the ``_physics_process_update_controller_velocity`` function." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:640 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:635 msgid "The ``_physics_process_update_controller_velocity`` function will calculate the VR controller's velocity through changes in position. It is not perfect, but this process gets a rough idea of the velocity of the VR controller, which is fine for the purposes of this tutorial." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:645 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:640 msgid "The next section of code checks to see if the VR controller is holding an object by checking to see if the ``held_object`` variable is not equal to ``null``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:647 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:642 msgid "If the VR controller is holding an object, we first store it's scale in a temporary variable called ``held_scale``. We then set the ``global_transform`` of the held object to the ``global_transform`` of the ``held_object`` node. This will make the held object have the same position, rotation, and scale of the ``grab_pos_node`` node in world space." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:650 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:645 msgid "However, because we do not want the held object to change in scale when it is grabbed, we need to set the ``scale`` property of the ``held_object`` node back to ``held_scale``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:652 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:647 msgid "This section of code will keep the held object in the same position and rotation as the VR controller, keeping it synced with the VR controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:656 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:651 msgid "Finally, the last section of code simply calls the ``_physics_process_directional_movement`` function. This function contains all the code for moving the player when the touchpad/joystick on the VR controller moves." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:661 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:656 msgid "``_physics_process_update_controller_velocity`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:663 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:658 msgid "First this function resets the ``controller_velocity`` variable to zero :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:667 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:662 msgid "Then we check to see if there are any stored/cached VR controller velocities saved in the ``prior_controller_velocities`` array. We do this by checking to see if the ``size()`` function returns a value greater than ``0``. If there are cached velocities within ``prior_controller_velocities``, then we iterate through each of the stored velocities using a ``for`` loop." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:670 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:665 msgid "For each of the cached velocities, we simply add its value to ``controller_velocity``. Once the code has gone through all of the cached velocities in ``prior_controller_velocities``, we divide ``controller_velocity`` by the size of the ``prior_controller_velocities`` array, which will give us the combined velocity value. This helps take the previous velocities into account, making the direction of the controller's velocity more accurate." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:676 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:671 msgid "Next we calculate the change in position the VR controller has taken since the last ``_physics_process`` function call. We do this by subtracting ``prior_controller_position`` from the global position of the VR controller, ``global_transform.origin``. This will give us a :ref:`Vector3 ` that points from the position in ``prior_controller_position`` to the current position of the VR controller, which we store in a variable called ``relative_controller_position``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:680 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:675 msgid "Next we add the change in position to ``controller_velocity`` so the latest change in position is taken into account in the velocity calculation. We then add ``relative_controller_position`` to ``prior_controller_velocities`` so it can be taken into account on the next calculation of the VR controller's velocity." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:683 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:678 msgid "Then ``prior_controller_position`` is updated with the global position of the VR controller, ``global_transform.origin``. We then divide ``controller_velocity`` by ``delta`` so the velocity is higher, giving results like those we expect, while still being relative to the amount of time that has passed. It is not a perfect solution, but the results look decent most of the time and for the purposes of this tutorial, it is good enough." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:687 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:682 msgid "Finally, the function checks to see if the ``prior_controller_velocities`` has more than ``30`` velocities cached by checking if the ``size()`` function returns a value greater than ``30``. If there are more than ``30`` cached velocities stored in ``prior_controller_velocities``, then we simply remove the oldest cached velocity by calling the ``remove`` function and passing in a index position of ``0``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:693 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:688 msgid "What this function ultimately does is that it gets a rough idea of the VR controller's velocity by calculating the VR controller's relative changes in position over the last thirty ``_physics_process`` calls. While this is not perfect, it gives a decent idea of how fast the VR controller is moving in 3D space." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:698 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:693 msgid "``_physics_process_directional_movement`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:700 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:695 msgid "First this function gets the axes for the trackpad and the joystick and assigns them to :ref:`Vector2 ` variables called ``trackpad_vector`` and ``joystick_vector`` respectively." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:702 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:697 msgid "You may need to remap the joystick and/or touchpad index values depending on your VR headset and controller. The inputs in this tutorial are the index values of a Windows Mixed Reality headset." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:705 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:700 msgid "Then ``trackpad_vector`` and ``joystick_vector`` have their deadzones account for. The code for this is detailed in the article below, with slight changes as the code is converted from C# to GDScript." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:708 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:703 msgid "Once the ``trackpad_vector`` and ``joystick_vector`` variables have had their deadzones account for, the code then gets the forward and right direction vectors relative to the global transform of the :ref:`ARVRCamera `. What this does is that it gives us vectors that point forward and right relative to the rotation of the user camera, the :ref:`ARVRCamera `, in world space. These vectors point in the same direction of the blue and red arrows when you select an object in the Godot editor with the ``local space mode`` button enabled. The forward direction vector is stored in a variable called ``forward_direction``, while the right direction vector is stored in a variable called ``right_direction``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:714 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:709 msgid "Next the code adds the ``trackpad_vector`` and ``joystick_vector`` variables together and normalizes the results using the ``normalized`` function. This gives us the combined movement direction of both input devices, so we can use a single :ref:`Vector2 ` for moving the user. We assign the combined direction to a variable called ``movement_vector``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:717 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:712 msgid "Then we calculate the distance the user will move forward, relative to the forward direction stored in ``forward_direction``. To calculate this, we multiply ``forward_direction`` by ``movement_vector.x``, ``delta``, and ``MOVEMENT_SPEED``. This will give us the distance the user will move forward when the trackpad/joystick is pushed forward or backwards. We assign this to a variable called ``movement_forward``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:721 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:716 msgid "We do a similar calculation for the distance the user will move right, relative to the right direction stored in ``right_direction``. To calculate the distance the user will move right, we multiply ``right_direction`` by ``movement_vector.y``, ``delta``, and ``MOVEMENT_SPEED``. This will give us the distance the user will move right when the trackpad/joystick is pushed right or left. We assign this to a variable called ``movement_right``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:725 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:720 msgid "Next we remove any movement on the ``Y`` axis of ``movement_forward`` and ``movement_right`` by assigning their ``Y`` values to ``0``. We do this so the user cannot fly/fall simply by moving the trackpad or joystick. Without doing this, the player could fly in the direction they are facing." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:728 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:723 msgid "Finally, we check to see if the ``length`` function on ``movement_right`` or ``movement_forward`` is greater than ``0``. If it is, then we need to move the user. To move the user, we perform a global translation to the :ref:`ARVROrigin ` node using ``get_parent().global_translate`` and pass in the ``movement_right`` variable with the ``movement_forward`` variable added to it. This will move the player in the direction the trackpad/joystick is pointing, relative to the rotation of the VR headset. We also set the ``directional_movement`` variable to ``true`` so the code knows this VR controller is moving the player." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:733 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:728 msgid "If the ``length`` function on ``movement_right`` or ``movement_forward`` is less than or equal to ``0``, then we simply set the ``directional_movement`` variable to ``false`` so the code knows this VR controller is not moving the player." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:739 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:734 msgid "What this function ultimately does is takes the input from the VR controller's trackpad and joystick and moves the player in the direction the player is pushing them. Movement is relative to the rotation of the VR headset, so if the player pushes forward and turns their head to the left, they will move to the left." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:744 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:739 msgid "``button_pressed`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:746 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:741 msgid "This function checks to see if the VR button that was just pressed is equal to one of the VR buttons used in this project. The ``button_index`` variable is passed in by the ``button_pressed`` signal in :ref:`ARVRController `, which we connected in the ``_ready`` function." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:749 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:744 msgid "There are only three buttons we are looking for in this project: the trigger button, the grab/grip button, and the menu button." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:751 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:746 msgid "You may need to remap these button index values depending on your VR headset and controller. The inputs in this tutorial are the index values of a Windows Mixed Reality headset." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:754 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:749 msgid "First we check if the ``button_index`` is equal to ``15``, which should map to the trigger button on the VR controller. If the button pressed is the trigger button, then the ``_on_button_pressed_trigger`` function is called." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:757 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:752 msgid "If the ``button_index`` is equal to ``2``, then the grab button was just pressed. If the button pressed is the grab button, the ``_on_button_pressed_grab`` function is called." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:759 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:754 msgid "Finally, if the ``button_index`` is equal to ``1``, then the menu button was just pressed. If the button pressed is the menu button, the ``_on_button_pressed_menu`` function is called." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:763 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:758 msgid "``_on_button_pressed_trigger`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:765 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:760 msgid "First this function checks to see if the VR controller is not holding by checking if ``held_object`` is equal to ``null``. If the VR controller is not holding anything, then we assume that the trigger press on the VR controller was for teleporting. We then make sure that ``teleport_mesh.visible`` is equal to ``false``. We use this to tell if the other VR controller is trying to teleport or not, as ``teleport_mesh`` will be visible if the other VR controller is teleporting." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:769 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:764 msgid "If ``teleport_mesh.visible`` is equal to ``false``, then we can teleport with this VR controller. We set the ``teleport_button_down`` variable to ``true``, set ``teleport_mesh.visible`` to true, and set ``teleport_raycast.visible`` to ``true``. This will tell the code in ``_physics_process`` that this VR controller is going to teleport, it will make the ``teleport_mesh`` visible so the user knows where the are teleporting to, and will make ``teleport_raycast`` visible to the player has a 'laser sight' they can use to aim the teleportation pos." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:776 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:771 msgid "If ``held_object`` is not equal to ``null``, then the VR controller is holding something. We then check to see if the object that is being held, ``held_object``, extends a class called ``VR_Interactable_Rigidbody``. we have not made ``VR_Interactable_Rigidbody`` yet, but ``VR_Interactable_Rigidbody`` will be a custom class we will use on all of the special/custom :ref:`RigidBody `-based nodes in the project." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:780 -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:855 -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:879 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:775 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:850 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:874 msgid "Don't worry, we will cover ``VR_Interactable_Rigidbody`` after this section!" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:782 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:777 msgid "If the ``held_object`` extends ``VR_Interactable_Rigidbody``, then we call the ``interact`` function, so the held object can do whatever it is supposed to do when the trigger is pressed and the object is held by the VR controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:787 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:782 msgid "``_on_button_pressed_grab`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:789 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:784 msgid "First this function checks to see if ``teleport_button_down`` is equal to ``true``. If it is, then it calls ``return``. We do this because we do not want the user to be able to pick up objects while teleporting." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:792 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:787 msgid "Then we check to see if the VR controller is currently not holding anything by checking if ``held_object`` is equal to ``null``. If the VR controller is not holding anything, then the ``_pickup_rigidbody`` function is called. If the VR controller is holding something, ``held_object`` is not equal to ``null``, then the ``_throw_rigidbody`` function is called." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:795 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:790 msgid "Finally, the pick-up/drop sound is played by calling the ``play`` function on ``hand_pickup_drop_sound``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:799 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:794 msgid "``_pickup_rigidbody`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:801 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:796 msgid "First the function makes a variable called ``rigid_body``, which we'll be using to store the :ref:`RigidBody ` that the VR controller is going to pick up, assuming there is a RigidBody to pick up." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:806 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:801 msgid "Then the function checks to see if the ``grab_mode`` variable is equal to ``AREA``. If it is, then it gets all of the :ref:`PhysicsBody ` nodes within the ``grab_area`` using the ``get_overlapping_bodies`` functions. This function will return an array of :ref:`PhysicsBody ` nodes. We assign the array of :ref:`PhysicsBody ` to a new variable called ``bodies``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:810 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:805 msgid "We then check to see if the length of the ``bodies`` variable is more than ``0``. If it is, we go through each of the :ref:`PhysicsBody ` nodes in ``bodies`` using a for loop." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:812 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:807 msgid "For each :ref:`PhysicsBody ` node, we check if it is, or extends, a :ref:`RigidBody ` node using ``if body is RigidBody``, which will return ``true`` if the :ref:`PhysicsBody ` node is or extends the :ref:`RigidBody ` node. If the object is a :ref:`RigidBody `, then we check to make sure there is not a variable/constant called ``NO_PICKUP`` defined in the body. We do this because if you want to have :ref:`RigidBody ` nodes that cannot be picked up, all you have to do is define a constant/variable called ``NO_PICKUP`` and the VR controller will be unable to pick it up. If the :ref:`RigidBody ` node does not have a variable/constant defined with the name ``NO_PICKUP``, then we assign the ``rigid_body`` variable to the :ref:`RigidBody ` node and break the for loop." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:818 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:813 msgid "What this section of code does is goes through all of the physics bodies within the ``grab_area`` and grabs the first :ref:`RigidBody ` node that does not have a variable/constant named ``NO_PICKUP`` and assigns it to the ``rigid_body`` variable so we can do some additional post processing later in this function." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:823 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:818 msgid "If the ``grab_mode`` variable is not equal to ``AREA``, we then check to see if it is equal to ``RAYCAST`` instead. If it is equal to ``RAYCAST``, we force the ``grab_raycast`` node to update using the ``force_raycast_update`` function. The ``force_raycast_update`` function will update the :ref:`Raycast ` with the latest changes in the physics world. We then check to see if the ``grab_raycast`` node collided with something using the ``is_colliding`` function, which will return true if the :ref:`Raycast ` hit something." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:827 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:822 msgid "If the ``grab_raycast`` hit something, we get the :ref:`PhysicsBody ` node hit using the ``get_collider`` function. The code then checks to see if the node hit is a :ref:`RigidBody ` node using ``if body is RigidBody``, which will return ``true`` if the :ref:`PhysicsBody ` node is or extends the :ref:`RigidBody ` node. Then the code checks to see if the :ref:`RigidBody ` node does not have a variable named ``NO_PICKUP``, and if it does not, then it assigns the :ref:`RigidBody ` node to the ``rigid_body`` variable." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:832 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:827 msgid "What this section of code does is sends the ``grab_raycast`` :ref:`Raycast ` node out and checks if it collided with a :ref:`RigidBody ` node that does not have a variable/constant named ``NO_PICKUP``. If it collided with a RigidBody without ``NO_PICKUP``, it assigns the node to the ``rigid_body`` variable so we can do some additional post processing later in this function." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:838 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:833 msgid "The final section of code first checks to see if ``rigid_body`` is not equal to ``null``. If ``rigid_body`` is not equal to ``null``, then the VR controller found a :ref:`RigidBody `-based node that can be picked up." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:841 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:836 msgid "If there is a VR controller to pickup, we assign ``held_object`` to the :ref:`RigidBody ` node stored in ``rigid_body``. We then store the :ref:`RigidBody ` node's ``mode``, ``collision_layer``, and ``collision_mask`` in ``held_object_data`` using ``mode``, ``layer``, and ``mask`` as keys for the respective values. This is so we can reapply them later when the object is dropped by the VR controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:845 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:840 msgid "We then set the :ref:`RigidBody `'s mode to ``MODE_STATIC``, it's ``collision_layer`` to zero, and it's ``collision_mask`` to zero. This will make it where the held :ref:`RigidBody ` cannot interact with other objects in the physics world when held by the VR controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:848 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:843 msgid "Next the ``hand_mesh`` :ref:`MeshInstance ` is made invisible by setting the ``visible`` property to ``false``. This is so the hand does not get in the way of the held object. Likewise, the ``grab_raycast`` 'laser sight' is made invisible by setting the ``visible`` property to ``false``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:851 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:846 msgid "Then the code checks to see if the held object extends a class called ``VR_Interactable_Rigidbody``. If it does, then sets a variable called ``controller`` on ``held_object`` to ``self``, and calls the ``picked_up`` function on ``held_object``. While we haven't made ``VR_Interactable_Rigidbody`` just yet, what this will do is set tell the ``VR_Interactable_Rigidbody`` class that it is being held by a VR controller, where the a reference to the controller is stored in the ``controller`` variable, through calling the ``picked_up`` function." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:857 -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:881 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:852 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:876 msgid "The code should make more sense after completing part 2 of this tutorial series, where we will actually be using ``VR_Interactable_Rigidbody``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:859 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:854 msgid "What this section of code does is that if a :ref:`RigidBody ` was found using the grab :ref:`Area ` or :ref:`Raycast `, it sets it up so that it can be carried by the VR controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:863 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:858 msgid "``_throw_rigidbody`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:865 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:860 msgid "First the function checks to see if the VR controller is not holding any object by checking if the ``held_object`` variable is equal to ``null``. If it is, then it simply calls ``return`` so nothing happens. While this shouldn't be possible, the ``_throw_rigidbody`` function should only be called if an object is held, this check helps ensure that if something strange happens, this function will react as expected." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:869 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:864 msgid "After checking if the VR controller is holding an object, we assume it is and set the stored :ref:`RigidBody ` data back to the held object. We take the ``mode``, ``layer`` and ``mask`` data stored in the ``held_object_data`` dictionary and reapply it to the object in ``held_object``. This will set the :ref:`RigidBody ` back to the state it was prior to being picked up." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:873 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:868 msgid "Then we call ``apply_impulse`` on the ``held_object`` so that the :ref:`RigidBody ` is thrown in the direction of the VR controller's velocity, ``controller_velocity``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:875 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:870 msgid "We then check to see if the object held extends a class called ``VR_Interactable_Rigidbody``. If it does, then we call a function called ``dropped`` in ``held_object`` and set ``held_object.controller`` to ``null``. While we have not made ``VR_Interactable_Rigidbody`` yet, but what this will do is call the ``droppped`` function so the :ref:`RigidBody ` can do whatever it needs to do when dropped, and we set the ``controller`` variable to ``null`` so that the :ref:`RigidBody ` knows that it is not being held." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:883 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:878 msgid "Regardless of whether ``held_object`` extends ``VR_Interactable_Rigidbody`` or not, we then set ``held_object`` to ``null`` so the VR controller knows it is no longer holding anything. Because the VR controller is no longer holding anything, we make the ``hand_mesh`` visible by setting ``hand_mesh.visible`` to true." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:886 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:881 msgid "Finally, if the ``grab_mode`` variable is set to ``RAYCAST``, we set ``grab_raycast.visible`` to ``true`` so the 'laser sight' for the :ref:`Raycast ` in ``grab_raycast`` is visible." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:890 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:885 msgid "``_on_button_pressed_menu`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:892 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:887 msgid "First this function checks to see if the ``grab_mode`` variable is equal to ``AREA``. If it is, then it sets ``grab_mode`` to ``RAYCAST``. It then checks to see if the VR controller is not holding anything by checking to see if ``held_object`` is equal to ``null``. If the VR controller is not holding anything, then ``grab_raycast.visible`` is set to ``true`` so the 'laser sight' on the grab raycast is visible." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:896 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:891 msgid "If the ``grab_mode`` variable is not equal to ``AREA``, then it checks to see if it is equal to ``RAYCAST``. If it is, then it sets the ``grab_mode`` to ``AREA`` and sets ``grab_raycast.visible`` to ``false`` so the 'laser sight' on the grab raycast is not visible." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:899 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:894 msgid "This section of code simply changes how the VR controller will grab :ref:`RigidBody `-based nodes when the grab/grip button is pressed. If ``grab_mode`` is set to ``AREA``, then the :ref:`Area ` node in ``grab_area`` will be used for detecting :ref:`RigidBody ` nodes, while if ``grab_mode`` is set to ``RAYCAST`` the :ref:`Raycast ` node in ``grab_raycast`` will be used for detecting :ref:`RigidBody ` nodes." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:905 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:900 msgid "``button_released`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:907 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:902 msgid "The only section of code in this function checks to see if the index of the button that was just released, ``button_index``, is equal to ``15``, which should map to the trigger button on the VR controller. The ``button_index`` variable is passed in by the ``button_release`` signal in :ref:`ARVRController `, which we connected in the ``_ready`` function." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:910 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:905 msgid "If the trigger button was just released, then the ``_on_button_released_trigger`` function is called." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:914 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:909 msgid "``_on_button_released_trigger`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:916 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:911 msgid "The only section of code in this function first checks to see if the VR controller is trying to teleport by checking if the ``teleport_button_down`` variable is equal to ``true``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:918 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:913 msgid "If the ``teleport_button_down`` variable is equal to ``true``, the code then checks if there is a teleport position set and whether the teleport mesh is visible. It does this by checking to see if ``teleport_pos`` is not equal to ``null`` and if ``teleport_mesh.visible`` is equal to ``true``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:921 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:916 msgid "If there is a teleport position set and the teleport mesh is visible, the code then calculates the offset from the camera to the :ref:`ARVROrigin ` node, which is assumed to be the parent node of the VR controller. To calculate the offset, the global position (``global_transform.origin``) of the ``Player_Camera`` node has the global position of the :ref:`ARVROrigin ` subtracted from it. This will result in a vector that points from the :ref:`ARVROrigin ` to the :ref:`ARVRCamera `, which we store in a variable called ``camera_offset``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:925 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:920 msgid "The reason we need to know the offset is because some VR headsets use room tracking, where the player's camera can be offset from the :ref:`ARVROrigin ` node. Because of this, when we teleport we want to keep the offset created by room tracking so that when the player teleports, the offset created by the room tracking is not applied. Without this, if you moved in a room and then teleported, instead of appearing at the position you wanted to teleport at, your position would be offset by the amount of distance you have from the :ref:`ARVROrigin ` node." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:929 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:924 msgid "Now that we know the offset from the VR camera to the VR origin, we need to remove the difference on the ``Y`` axis. We do this because we do not want to offset based on the user's height. If we did not do this, when teleporting the player's head would be level with the ground." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:932 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:927 msgid "Then we can 'teleport' the player by setting the global position (``global_transform.origin``) of the ARVROrigin node to the position stored in ``teleport_pos`` with ``camera_offset`` subtracted from it. This will teleport the player and remove the room tracking offset, so the user appears exactly where they want when teleporting." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:935 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:930 msgid "Finally, regardless of whether the VR controller teleported the user or not, we reset the teleport related variables. ``teleport_button_down`` is set to ``false``, ``teleport_mesh.visible`` is set to ``false`` so the mesh is invisible, ``teleport_raycast.visible`` is set to ``false``, and ``teleport_pos`` is set to ``null``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:940 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:935 msgid "``sleep_area_entered`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:942 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:937 msgid "The only section of code in this function checks to see if the :ref:`PhysicsBody ` node that entered the ``Sleep_Area`` node has a variable called ``can_sleep``. If it does, then it sets the ``can_sleep`` variable to ``false`` and sets the ``sleeping`` variable to ``false``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:945 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:940 msgid "Without doing this, sleeping :ref:`PhysicsBody ` nodes would not be able to be picked up by the VR controller, even if the VR controller is at the same position as the :ref:`PhysicsBody ` node. To work around this, we simply 'wake up' :ref:`PhysicsBody ` nodes that are close to the VR controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:951 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:946 msgid "``sleep_area_exited`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:953 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:948 msgid "The only section of code in this function checks to see if the :ref:`PhysicsBody ` node that entered the ``Sleep_Area`` node has a variable called ``can_sleep``. If it does, then it sets the ``can_sleep`` variable to ``true``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:956 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:951 msgid "This allows :ref:`RigidBody ` nodes that leave the ``Sleep_Area`` to sleep again, saving performance." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:960 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:955 msgid "Okay, whew! That was a lot of code! Add the same script, ``VR_Controller.gd`` to the other VR controller scene so both VR controllers have the same script." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:962 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:957 msgid "Now we just need to do one thing before testing the project! Right now we are referencing a class called ``VR_Interactable_Rigidbody``, but we have not defined it yet. While we will not be using ``VR_Interactable_Rigidbody`` in this tutorial, let's create it real quick so the project can be run." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:968 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:963 msgid "Creating a base class for interactable VR objects" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:970 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:965 msgid "With the ``Script`` tab still open, create a new GDScript called ``VR_Interactable_Rigidbody.gd``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:972 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:967 msgid "You can create GDScripts in the ``Script`` tab by pressing ``File -> New Script...``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:974 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:969 msgid "Once you have ``VR_Interactable_Rigidbody.gd`` open, add the following code:" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1002 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:997 msgid "Let's quickly go through what this script." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1006 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1001 msgid "First we start the script with ``class_name VR_Interactable_Rigidbody``. What this does is that it tells Godot that this GDScript is a new class that called ``VR_Interactable_Rigidbody``. This allows us to compare nodes against the ``VR_Interactable_Rigidbody`` class in other script files without having to load the script directly or do anything special. We can compare the class just like all of the built-in Godot classes." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1010 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1005 msgid "Next is a class variable called ``controller``. ``controller`` will be used to hold a reference to the VR controller that is currently holding the object. If a VR controller is not holding the object, then the ``controller`` variable will be ``null``. The reason we need to have a reference to the VR controller is so held objects can access VR controller specific data, like ``controller_velocity``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1014 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1009 msgid "Finally, we have four functions. The ``_ready`` function is defined by Godot and all we do is simply have ``pass`` as there is nothing we need to do when the object is added to the scene in ``VR_Interactable_Rigidbody``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1017 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1012 msgid "The ``interact`` function is a stub function that will be called when the interact button on the VR controller, the trigger in this case, is pressed while the object is held." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1019 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1014 msgid "A stub function is a function that is defined but does not have any code. Stub functions are generally designed to be overwritten or extended. In this project, we are using the stub functions so there is a consistent interface across all interactable :ref:`RigidBody ` objects." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1022 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1017 msgid "The ``picked_up`` and ``dropped`` functions are stub functions that will be called when the object is picked up and dropped by the VR controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1026 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1021 msgid "That is all we need to do for now! In the next part of this tutorial series, we'll start making special interactable :ref:`RigidBody ` objects." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1028 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1023 msgid "Now that the base class is defined, the code in the VR controller should work. Go ahead and try the game again, and you should find you can teleport around by pressing the touch pad, and can grab and throw objects using the grab/grip buttons." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1031 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1026 msgid "Now, you may want to try moving using the trackpads and/or joysticks, but **it may make you motion sick!**" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1033 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1028 msgid "One of the main reasons this can make you feel motion sick is because your vision tells you that you are moving, while your body is not moving. This conflict of signals can make the body feel sick. Let's add a vignette shader to help reduce motion sickness while moving in VR!" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1039 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1034 msgid "Reducing motion sickness" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1041 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1036 msgid "There are plenty of ways to reduce motion sickness in VR, and there is no one perfect way to reduce motion sickness. See `this page on the Oculus Developer Center `_ for more information on how to implement locomotion and reducing motion sickness." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1045 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1040 msgid "To help reduce motion sickness while moving, we are going to add a vignette effect that will only be visible while the player moves." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1047 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1042 msgid "First, quickly switch back to ``Game.tscn```. Under the :ref:`ARVROrigin ` node there is a child node called ``Movement_Vignette``. This node is going to apply a simple vignette to the VR headset when the player is moving using the VR controllers. This should help reduce motion sickness." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1050 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1045 msgid "Open up ``Movement_Vignette.tscn``, which you can find in the ``Scenes`` folder. The scene is just a :ref:`ColorRect ` node with a custom shader. Feel free to look at the custom shader if you want, it is just a slightly modified version of the vignette shader you can find in the `Godot demo repository `_." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1054 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1049 msgid "Let's write the code that will make the vignette shader visible when the player is moving. Select the ``Movement_Vignette`` node and create a new script called ``Movement_Vignette.gd``. Add the following code:" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1097 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1092 msgid "Because this script is fairly brief, let's quickly go over what it does." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1101 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1096 msgid "Explaining the vignette code" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1103 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1098 msgid "There are two class variables, ``controller_one`` and ``controller_two``. These variables will hold references to the left and right VR controllers." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1107 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1102 msgid "In the ``_ready`` function first waits for four frames using ``yield``. The reason we are waiting four frames is because we want to ensure the VR interface is ready and accessible." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1110 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1105 msgid "After waiting the primary VR interface is retrieved using ``ARVRServer.primary_interface``, which is assigned to a variable called ``interface``. The code then checks to see if ``interface`` is equal to ``null``. If ``interface`` is equal to ``null``, then ``_process`` is disabled using ``set_process`` with a value of ``false``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1113 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1108 msgid "If ``interface`` is not ``null``, then we set the ``rect_size`` of the vignette shader to the render size of the VR viewport so it takes up the entire screen. We need to do this because different VR headsets have different resolutions and aspect ratios, so we need to resize the node accordingly. We also set the ``rect_position`` of the vignette shader to zero so it is in the correct position relative to the screen." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1117 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1112 msgid "The left and right VR controllers are then retrieved and assigned to ``controller_one`` and ``controller_two`` respectively. Finally, the vignette shader is made invisible by default by setting it's ``visible`` property to ``false``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1122 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1117 msgid "In ``_process`` the code first checks if either ``controller_one`` or ``controller_two`` are equal to ``null``. If either node is equal to ``null``, then ``return`` is called so nothing happens." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1125 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1120 msgid "Then the code checks to see if either of the VR controllers are moving the player using the touchpad/joystick by checking if ``directional_movement`` is equal to ``true`` in ``controller_one`` or ``controller_two``. If either of the VR controllers are moving the player, then the vignette shader makes itself visible by setting it's ``visible`` property to ``true``. If neither VR controller is moving the player, so ``directional_movement`` is ``false`` in both VR controllers, than the vignette shader makes itself invisible by setting it's ``visible`` property to ``false``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1132 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1127 msgid "That is the whole script! Now that we have written the code, go ahead and try moving around with the trackpad and/or joystick. You should find that it is less motion sickness-inducing then before!" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1135 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1130 msgid "As previously mentioned, there are plenty of ways to reduce motion sickness in VR. Check out `this page on the Oculus Developer Center `_ for more information on how to implement locomotion and reducing motion sickness." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1142 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1137 msgid "Final notes" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1146 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1141 msgid "Now you have fully working VR controllers that can move around the environment and interact with :ref:`RigidBody `-based objects. In the next part of this tutorial series, we will be creating some special :ref:`RigidBody `-based objects for the player to use!" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1149 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1144 msgid "You can download the finished project for this tutorial series on the Godot OpenVR GitHub repository, under the releases tab!" msgstr "" diff --git a/sphinx/templates/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_two.pot b/sphinx/templates/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_two.pot index 7388302719..6a22b9c1e2 100644 --- a/sphinx/templates/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_two.pot +++ b/sphinx/templates/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_two.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/templates_list.txt b/templates_list.txt index 9bf89ac59f..8fecafb7f5 100644 --- a/templates_list.txt +++ b/templates_list.txt @@ -36,6 +36,7 @@ getting_started/scripting/gdscript/gdscript_advanced.pot getting_started/scripting/gdscript/gdscript_exports.pot getting_started/scripting/gdscript/gdscript_styleguide.pot getting_started/scripting/gdscript/static_typing.pot +getting_started/scripting/gdscript/warning_system.pot getting_started/scripting/gdscript/gdscript_format_string.pot getting_started/scripting/visual_script/index.pot getting_started/scripting/visual_script/what_is_visual_scripting.pot @@ -74,6 +75,7 @@ getting_started/workflow/export/exporting_for_ios.pot getting_started/workflow/export/exporting_for_uwp.pot getting_started/workflow/export/exporting_for_android.pot getting_started/workflow/export/exporting_for_web.pot +getting_started/workflow/export/exporting_for_dedicated_servers.pot getting_started/workflow/export/one-click_deploy.pot getting_started/workflow/export/android_custom_build.pot getting_started/workflow/export/changing_application_icon_for_windows.pot @@ -101,7 +103,8 @@ tutorials/2d/2d_sprite_animation.pot tutorials/3d/index.pot tutorials/3d/introduction_to_3d.pot tutorials/3d/using_transforms.pot -tutorials/3d/3d_performance_and_limitations.pot +tutorials/3d/optimizing_3d_performance.pot +tutorials/3d/3d_rendering_limitations.pot tutorials/3d/spatial_material.pot tutorials/3d/lights_and_shadows.pot tutorials/3d/reflection_probes.pot @@ -207,6 +210,7 @@ tutorials/vr/vr_primer.pot tutorials/vr/vr_starter_tutorial/index.pot tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.pot tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_two.pot +tutorials/vr/developing_for_oculus_quest.pot tutorials/plugins/index.pot tutorials/plugins/editor/index.pot tutorials/plugins/editor/installing_plugins.pot @@ -271,7 +275,14 @@ development/compiling/optimizing_for_size.pot development/compiling/compiling_with_script_encryption_key.pot development/cpp/index.pot development/cpp/introduction_to_godot_development.pot -development/cpp/configuring_an_ide.pot +development/cpp/configuring_an_ide/index.pot +development/cpp/configuring_an_ide/android_studio.pot +development/cpp/configuring_an_ide/clion.pot +development/cpp/configuring_an_ide/kdevelop.pot +development/cpp/configuring_an_ide/qt_creator.pot +development/cpp/configuring_an_ide/visual_studio.pot +development/cpp/configuring_an_ide/visual_studio_code.pot +development/cpp/configuring_an_ide/xcode.pot development/cpp/core_types.pot development/cpp/variant_class.pot development/cpp/object_class.pot @@ -282,9 +293,9 @@ development/cpp/custom_resource_format_loaders.pot development/cpp/custom_audiostreams.pot development/cpp/custom_godot_servers.pot development/editor/index.pot -development/editor/introduction.pot development/editor/creating_icons.pot development/file_formats/index.pot +development/file_formats/gdscript_grammar.pot development/file_formats/tscn.pot community/contributing/index.pot community/contributing/ways_to_contribute.pot diff --git a/weblate/docs/docs.pot b/weblate/docs/docs.pot index c16beaa18b..c69adbf731 100644 --- a/weblate/docs/docs.pot +++ b/weblate/docs/docs.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2020-05-04 09:58+0200\n" +"POT-Creation-Date: 2020-05-20 16:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -153,7 +153,8 @@ msgstr "" #: ../../docs/tutorials/2d/2d_meshes.rst:7 #: ../../docs/tutorials/2d/2d_sprite_animation.rst:7 #: ../../docs/tutorials/3d/using_transforms.rst:7 -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:7 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:10 +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:7 #: ../../docs/tutorials/3d/spatial_material.rst:7 #: ../../docs/tutorials/3d/lights_and_shadows.rst:7 #: ../../docs/tutorials/3d/reflection_probes.rst:7 @@ -193,6 +194,7 @@ msgstr "" #: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:7 #: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:7 #: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_two.rst:7 +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:7 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:11 #: ../../docs/tutorials/plugins/editor/spatial_gizmos.rst:7 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:7 @@ -203,7 +205,6 @@ msgstr "" #: ../../docs/development/cpp/custom_resource_format_loaders.rst:7 #: ../../docs/development/cpp/custom_audiostreams.rst:7 #: ../../docs/development/cpp/custom_godot_servers.rst:7 -#: ../../docs/development/editor/introduction.rst:4 #: ../../docs/community/contributing/best_practices_for_engine_contributors.rst:7 msgid "Introduction" msgstr "" @@ -454,7 +455,7 @@ msgstr "" msgid "**For the editor:**" msgstr "" -#: ../../docs/about/faq.rst:38 ../../docs/tutorials/misc/jitter_stutter.rst:53 +#: ../../docs/about/faq.rst:38 ../../docs/tutorials/misc/jitter_stutter.rst:59 #: ../../docs/development/compiling/compiling_with_mono.rst:329 msgid "Windows" msgstr "" @@ -474,7 +475,7 @@ msgstr "" #: ../../docs/getting_started/editor/default_key_mapping.rst:461 #: ../../docs/getting_started/editor/default_key_mapping.rst:478 #: ../../docs/getting_started/editor/default_key_mapping.rst:513 -#: ../../docs/tutorials/misc/jitter_stutter.rst:78 +#: ../../docs/tutorials/misc/jitter_stutter.rst:84 msgid "macOS" msgstr "" @@ -491,15 +492,15 @@ msgid "Windows (and UWP)" msgstr "" #: ../../docs/about/faq.rst:47 -#: ../../docs/getting_started/step_by_step/exporting.rst:316 -#: ../../docs/tutorials/misc/jitter_stutter.rst:84 +#: ../../docs/getting_started/step_by_step/exporting.rst:310 +#: ../../docs/tutorials/misc/jitter_stutter.rst:90 #: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "Android" msgstr "" #: ../../docs/about/faq.rst:48 -#: ../../docs/getting_started/step_by_step/exporting.rst:369 -#: ../../docs/tutorials/misc/jitter_stutter.rst:90 +#: ../../docs/getting_started/step_by_step/exporting.rst:363 +#: ../../docs/tutorials/misc/jitter_stutter.rst:96 #: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "iOS" msgstr "" @@ -1070,441 +1071,449 @@ msgstr "" #: ../../docs/about/docs_changelog.rst:6 msgid "" -"The documentation is continually being improved. The release of version 3.1 " +"The documentation is continually being improved. The release of version 3.2 " "includes many new tutorials, many fixes and updates for old tutorials, and " -"many updates to the class reference. Below is a list of new tutorials added " -"since version 3.0." +"many updates to the :ref:`class reference `. Below is a list " +"of new tutorials added since version 3.1." msgstr "" -#: ../../docs/about/docs_changelog.rst:10 +#: ../../docs/about/docs_changelog.rst:11 msgid "" "This document only contains new tutorials so not all changes are reflected, " "many tutorials have been substantially updated but are not reflected in this " "document." msgstr "" -#: ../../docs/about/docs_changelog.rst:14 +#: ../../docs/about/docs_changelog.rst:15 msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:18 +#: ../../docs/about/docs_changelog.rst:118 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:19 +#: ../../docs/about/docs_changelog.rst:20 msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:132 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:134 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:24 +#: ../../docs/about/docs_changelog.rst:25 msgid ":ref:`doc_2d_sprite_animation`" msgstr "" -#: ../../docs/about/docs_changelog.rst:27 +#: ../../docs/about/docs_changelog.rst:28 #: ../../docs/tutorials/audio/index.rst:2 msgid "Audio" msgstr "" -#: ../../docs/about/docs_changelog.rst:29 +#: ../../docs/about/docs_changelog.rst:30 +msgid ":ref:`doc_recording_with_microphone`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 msgid ":ref:`doc_sync_with_audio`" msgstr "" -#: ../../docs/about/docs_changelog.rst:32 ../../docs/tutorials/math/index.rst:2 +#: ../../docs/about/docs_changelog.rst:34 ../../docs/tutorials/math/index.rst:2 msgid "Math" msgstr "" -#: ../../docs/about/docs_changelog.rst:34 +#: ../../docs/about/docs_changelog.rst:36 msgid ":ref:`doc_beziers_and_curves`" msgstr "" -#: ../../docs/about/docs_changelog.rst:35 +#: ../../docs/about/docs_changelog.rst:37 msgid ":ref:`doc_interpolation`" msgstr "" -#: ../../docs/about/docs_changelog.rst:38 +#: ../../docs/about/docs_changelog.rst:40 #: ../../docs/tutorials/inputs/index.rst:2 msgid "Inputs" msgstr "" -#: ../../docs/about/docs_changelog.rst:40 +#: ../../docs/about/docs_changelog.rst:42 msgid ":ref:`doc_input_examples`" msgstr "" -#: ../../docs/about/docs_changelog.rst:43 ../../docs/tutorials/i18n/index.rst:2 +#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/i18n/index.rst:2 msgid "Internationalization" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 +#: ../../docs/about/docs_changelog.rst:47 msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:168 +#: ../../docs/about/docs_changelog.rst:50 +#: ../../docs/about/docs_changelog.rst:170 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:50 +#: ../../docs/about/docs_changelog.rst:55 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 +#: ../../docs/about/docs_changelog.rst:56 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:57 +msgid ":ref:`doc_visual_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:60 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 +#: ../../docs/about/docs_changelog.rst:62 msgid ":ref:`doc_webrtc`" msgstr "" -#: ../../docs/about/docs_changelog.rst:63 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:65 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:67 msgid ":ref:`doc_vr_starter_tutorial_part_one`" msgstr "" -#: ../../docs/about/docs_changelog.rst:66 +#: ../../docs/about/docs_changelog.rst:68 msgid ":ref:`doc_vr_starter_tutorial_part_two`" msgstr "" -#: ../../docs/about/docs_changelog.rst:69 -#: ../../docs/about/docs_changelog.rst:183 +#: ../../docs/about/docs_changelog.rst:71 +#: ../../docs/about/docs_changelog.rst:185 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:71 +#: ../../docs/about/docs_changelog.rst:73 msgid ":ref:`doc_android_plugin`" msgstr "" -#: ../../docs/about/docs_changelog.rst:72 +#: ../../docs/about/docs_changelog.rst:74 msgid ":ref:`doc_inspector_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:73 +#: ../../docs/about/docs_changelog.rst:75 msgid ":ref:`doc_visual_shader_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:76 -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:196 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:80 msgid ":ref:`doc_using_multiple_threads`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:83 +#: ../../docs/about/docs_changelog.rst:201 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 +#: ../../docs/about/docs_changelog.rst:90 msgid "Procedural geometry series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:86 msgid ":ref:`Procedural geometry `" msgstr "" -#: ../../docs/about/docs_changelog.rst:85 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_arraymesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:88 msgid ":ref:`doc_surfacetool`" msgstr "" -#: ../../docs/about/docs_changelog.rst:87 +#: ../../docs/about/docs_changelog.rst:89 msgid ":ref:`doc_meshdatatool`" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 +#: ../../docs/about/docs_changelog.rst:90 msgid ":ref:`doc_immediategeometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:91 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:93 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:97 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:99 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:102 +#: ../../docs/about/docs_changelog.rst:104 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:105 +#: ../../docs/about/docs_changelog.rst:107 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 #: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:18 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:118 +#: ../../docs/about/docs_changelog.rst:120 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:124 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:123 +#: ../../docs/about/docs_changelog.rst:125 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 +#: ../../docs/about/docs_changelog.rst:126 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 +#: ../../docs/about/docs_changelog.rst:127 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:129 +#: ../../docs/about/docs_changelog.rst:131 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:137 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:140 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:143 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:142 +#: ../../docs/about/docs_changelog.rst:144 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:147 +#: ../../docs/about/docs_changelog.rst:149 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "" -#: ../../docs/about/docs_changelog.rst:153 +#: ../../docs/about/docs_changelog.rst:155 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:159 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:159 +#: ../../docs/about/docs_changelog.rst:161 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:164 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:172 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:171 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:172 +#: ../../docs/about/docs_changelog.rst:174 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:174 +#: ../../docs/about/docs_changelog.rst:176 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:178 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:177 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:178 +#: ../../docs/about/docs_changelog.rst:180 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:181 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:180 +#: ../../docs/about/docs_changelog.rst:182 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:185 +#: ../../docs/about/docs_changelog.rst:187 msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:188 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:191 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:193 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:198 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:201 +#: ../../docs/about/docs_changelog.rst:203 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:206 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:206 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:207 +#: ../../docs/about/docs_changelog.rst:209 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:210 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:209 +#: ../../docs/about/docs_changelog.rst:211 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:212 +#: ../../docs/about/docs_changelog.rst:214 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:349 #: ../../docs/development/compiling/index.rst:2 -#: ../../docs/development/compiling/compiling_for_windows.rst:85 +#: ../../docs/development/compiling/compiling_for_windows.rst:92 #: ../../docs/development/compiling/compiling_for_x11.rst:89 #: ../../docs/development/compiling/compiling_for_osx.rst:31 #: ../../docs/development/compiling/compiling_for_ios.rst:19 @@ -1512,20 +1521,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:214 +#: ../../docs/about/docs_changelog.rst:216 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:215 +#: ../../docs/about/docs_changelog.rst:217 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:218 +#: ../../docs/about/docs_changelog.rst:220 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:220 +#: ../../docs/about/docs_changelog.rst:222 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -3030,6 +3039,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:345 +#: ../../docs/tutorials/misc/running_code_in_the_editor.rst:128 msgid "Instancing scenes" msgstr "" @@ -3101,11 +3111,11 @@ msgid "Signal" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:7 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1280 -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1296 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:484 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:696 -#: ../../docs/development/cpp/object_class.rst:212 +#: ../../docs/development/cpp/object_class.rst:214 msgid "Signals" msgstr "" @@ -3343,89 +3353,99 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:24 msgid "" "**Why 2D?** 3D games are much more complex than 2D ones. You should stick to " -"2D until you have a good understanding of the game development process." +"2D until you have a good understanding of the game development process and " +"how to use Godot." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:28 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:29 #: ../../docs/getting_started/workflow/project_setup/index.rst:2 #: ../../docs/tutorials/2d/using_tilemaps.rst:21 #: ../../docs/tutorials/misc/state_design_pattern.rst:233 -#: ../../docs/development/cpp/configuring_an_ide.rst:184 -#: ../../docs/development/cpp/configuring_an_ide.rst:373 +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:9 msgid "Project setup" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:30 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:31 msgid "" "Launch Godot and create a new project. Then, download :download:" -"`dodge_assets.zip ` - the images and sounds you'll " -"be using to make the game. Unzip these files to your project folder." +"`dodge_assets.zip `. This contains the images and " +"sounds you'll be using to make the game. Unzip these files in your project " +"folder." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:34 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:36 msgid "" -"For this tutorial, we will assume you are familiar with the editor. If you " -"haven't read :ref:`doc_scenes_and_nodes`, do so now for an explanation of " -"setting up a project and using the editor." +"For this tutorial, we will assume you are familiar with the Godot editor. If " +"you haven't read :ref:`doc_scenes_and_nodes`, do so now for an explanation " +"of setting up a project and using the editor." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:38 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:40 msgid "" -"This game will use portrait mode, so we need to adjust the size of the game " -"window. Click on Project -> Project Settings -> Display -> Window and set " -"\"Width\" to ``480`` and \"Height\" to ``720``." +"This game is designed for portrait mode, so we need to adjust the size of " +"the game window. Click on Project -> Project Settings -> Display -> Window " +"and set \"Width\" to ``480`` and \"Height\" to ``720``." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:43 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:44 +msgid "" +"Also in this section, 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/step_by_step/your_first_game.rst:49 msgid "Organizing the project" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:45 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:51 msgid "" "In this project, we will make 3 independent scenes: ``Player``, ``Mob``, and " "``HUD``, which we will combine into the game's ``Main`` scene. In a larger " -"project, it might be useful to make folders to hold the various scenes and " +"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, referred to as ``res://``. You " -"can see your project folders in the FileSystem Dock in the lower left corner:" +"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/step_by_step/your_first_game.rst:56 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:62 msgid "Player scene" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:58 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:64 msgid "" "The first scene we will make defines 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/step_by_step/your_first_game.rst:63 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:69 msgid "Node structure" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:65 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:71 msgid "" -"To begin, click the \"Add/Create a New Node\" button and add an :ref:`Area2D " -"` node to the scene." +"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 ` node to the scene." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:70 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:78 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/step_by_step/your_first_game.rst:73 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:81 msgid "" "With ``Area2D`` we can detect objects that overlap or run into the player. " -"Change its name to ``Player`` by clicking on the node's name. This is the " -"scene's root node. We can add additional nodes to the player to add " +"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/step_by_step/your_first_game.rst:78 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:86 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 " @@ -3433,23 +3453,23 @@ msgid "" "the object's children are not selectable.\"" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:85 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:93 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/step_by_step/your_first_game.rst:87 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:95 msgid "For this project, we will be following the Godot naming conventions." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:89 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:97 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/step_by_step/your_first_game.rst:93 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:101 msgid "" "**C#**: Classes, export variables and methods use PascalCase, private fields " "use _camelCase, local variables and parameters use camelCase (See :ref:" @@ -3457,11 +3477,11 @@ msgid "" "when connecting signals." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:100 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:108 msgid "Sprite animation" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:102 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:110 msgid "" "Click on the ``Player`` node and add an :ref:`AnimatedSprite " "` node as a child. The ``AnimatedSprite`` will handle " @@ -3469,20 +3489,22 @@ msgid "" "symbol next to the node. An ``AnimatedSprite`` requires a :ref:`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\". This should automatically open " -"the SpriteFrames panel." +"click \"[empty]\" -> \"New SpriteFrames\". Click again to open the " +"\"SpriteFrames\" panel:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:113 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:121 msgid "" "On the left is a list of animations. Click the \"default\" one and rename it " -"to \"right\". Then click the \"Add\" button to create a second animation " -"named \"up\". 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:" +"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/step_by_step/your_first_game.rst:120 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:130 msgid "" "The player images are a bit too large for the game window, so we need to " "scale them down. Click on the ``AnimatedSprite`` node and set the ``Scale`` " @@ -3490,7 +3512,7 @@ msgid "" "``Node2D`` heading." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:127 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:137 msgid "" "Finally, add a :ref:`CollisionShape2D ` as a child " "of ``Player``. This will determine the player's \"hitbox\", or the bounds of " @@ -3500,44 +3522,48 @@ msgid "" "cover the sprite:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:136 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:146 msgid "When you're finished, your ``Player`` scene should look like this:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:141 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:150 +msgid "Make sure to save the scene again after these changes." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:153 msgid "Moving the player" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:143 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:155 msgid "" "Now 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 \"Add " -"Script\" button:" +"node, so we'll add a script. Click the ``Player`` node and click the " +"\"Attach Script\" button:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:161 msgid "" "In the script settings window, you can leave the default settings alone. " "Just click \"Create\":" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:152 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:164 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/step_by_step/your_first_game.rst:157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:169 msgid "" "If this is your first time encountering GDScript, please read :ref:" "`doc_scripting` before continuing." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:160 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:172 msgid "Start by declaring the member variables this object will need:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:181 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:193 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 " @@ -3547,7 +3573,7 @@ msgid "" "here, it will override the value written in the script." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:188 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:200 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 " @@ -3555,13 +3581,13 @@ msgid "" "to reveal the Mono Panel, then clicking the \"Build Project\" button." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:196 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:208 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/step_by_step/your_first_game.rst:212 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:224 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 " @@ -3569,19 +3595,19 @@ msgid "" "do the following:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:217 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:229 msgid "Check for input." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:230 msgid "Move in the given direction." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:219 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:231 msgid "Play the appropriate animation." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:233 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 " @@ -3591,65 +3617,67 @@ msgid "" "keyboard." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:228 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:240 msgid "" "You can detect whether a key is pressed using ``Input.is_action_pressed()``, " -"which returns ``true`` if it is pressed or ``false`` if it isn't." +"which returns ``true`` if it's pressed or ``false`` if it isn't." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:290 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:302 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* than if it just moved horizontally." +"movement, the player would move *faster* diagonally than if it just moved " +"horizontally." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:297 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:309 msgid "" "We can prevent that if we *normalize* the velocity, which means we set its " -"*length* to ``1``, and multiply by the desired speed. This means no more " +"*length* to ``1``, then multiply by the desired speed. This means no more " "fast diagonal movement." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:301 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:313 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/step_by_step/your_first_game.rst:305 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:317 msgid "" -"We also check whether the player is moving so we can start or stop the " -"AnimatedSprite animation." +"We also check whether the player is moving so we can call ``play()`` or " +"``stop()`` on the AnimatedSprite." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:308 -msgid "" -"In GDScript, ``$`` returns the node at the relative path from the current " -"node, or returns ``null`` if the node is not found. Since AnimatedSprite is " -"a child of the current node, we can use ``$AnimatedSprite``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:311 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:320 msgid "" "``$`` is shorthand for ``get_node()``. So in the code above, ``" "$AnimatedSprite.play()`` is the same as ``get_node(\"AnimatedSprite\")." "play()``." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:314 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:323 +msgid "" +"In GDScript, ``$`` returns the node at the relative path from the current " +"node, or returns ``null`` if the node is not found. Since AnimatedSprite is " +"a child of the current node, we can use ``$AnimatedSprite``." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:326 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:" +"to the bottom of the ``_process`` function (make sure it's not indented " +"under the `else`):" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:335 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:347 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 " @@ -3657,66 +3685,88 @@ msgid "" "frame rate changes." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:340 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:352 msgid "" "Click \"Play Scene\" (``F6``) and confirm you can move the player around the " -"screen in all directions. The console output that opens upon playing the " -"scene can be closed by clicking ``Output`` (which should be highlighted in " -"blue) in the lower left of the Bottom Panel." +"screen in all directions." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:345 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:355 +msgid "If you get an error in the \"Debugger\" panel that says" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:357 msgid "" -"If you get an error in the \"Debugger\" panel that refers to a \"null " -"instance\", this likely means you spelled the node name wrong. Node names " -"are case-sensitive and ``$NodeName`` or ``get_node(\"NodeName\")`` must " -"match the name you see in the scene tree." +"``Attempt to call function 'play' in base 'null instance' on a null " +"instance``" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:350 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:359 +msgid "" +"this likely means you spelled the name of the AnimatedSprite node wrong. " +"Node names are case-sensitive and ``$NodeName`` must match the name you see " +"in the scene tree." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:364 msgid "Choosing animations" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:352 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:366 msgid "" "Now that the player can move, we need to change which animation the " -"AnimatedSprite is playing based on direction. We have a \"right\" animation, " -"which should be flipped horizontally using the ``flip_h`` property for left " -"movement, and an \"up\" animation, which should be flipped vertically with " -"``flip_v`` for downward movement. Let's place this code at the end of our " -"``_process()`` function:" +"AnimatedSprite 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/step_by_step/your_first_game.rst:386 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:401 msgid "" "The boolean assignments in the code above are a common shorthand for " -"programmers. Consider this code versus the shortened boolean assignment " -"above:" +"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/step_by_step/your_first_game.rst:409 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:425 msgid "" "Play the scene again and check that the animations are correct in each of " -"the directions. When you're sure the movement is working correctly, add this " -"line to ``_ready()``, so the player will be hidden when the game starts:" +"the directions." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:424 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:428 +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/step_by_step/your_first_game.rst:433 +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/step_by_step/your_first_game.rst:446 msgid "Preparing for collisions" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:426 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:448 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/step_by_step/your_first_game.rst:430 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:452 msgid "Add the following at the top of the script, after ``extends Area2d``:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:444 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:466 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 " @@ -3724,103 +3774,94 @@ msgid "" "next to the Inspector tab to see the list of signals the player can emit:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:451 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:473 msgid "" "Notice our custom \"hit\" signal is there as well! Since our enemies are " -"going to be ``RigidBody2D`` nodes, we want the ``body_entered( Object " -"body )`` signal; this will be emitted when a body contacts the player. Click " -"\"Connect..\" and then \"Connect\" again on the \"Connecting Signal\" " -"window. We don't need to change any of these settings - Godot will " -"automatically create a function in your player's script. This function will " -"be called whenever the signal is emitted - it *handles* the signal." +"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/step_by_step/your_first_game.rst:460 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:482 msgid "" -"When connecting a signal, instead of having Godot create a function for you, " -"you can also give the name of an existing function that you want to link the " -"signal to." +"Note the green icon indicating that a signal is connected to this function. " +"Add this code to the function:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:464 -msgid "Add this code to the function:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:483 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:502 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/step_by_step/your_first_game.rst:487 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:506 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()`` allows " -"us to have Godot wait to disable the shape until it's safe to do so." +"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/step_by_step/your_first_game.rst:492 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:510 msgid "" -"The last piece for our player is to add a function we can call to reset the " -"player when starting a new game." +"The last piece is to add a function we can call to reset the player when " +"starting a new game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:513 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:531 msgid "Enemy scene" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:515 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:533 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 and move in a random direction in a straight line, then despawn " -"when they go offscreen." +"the screen, choose a random direction, and move in a straight line." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:520 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:537 msgid "" -"We will build this into a ``Mob`` scene, which we can then *instance* to " -"create any number of independent mobs in the game." +"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/step_by_step/your_first_game.rst:524 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:540 +msgid "See :ref:`doc_instancing` to learn more about instancing." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:543 msgid "Node setup" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:526 -msgid "Click Scene -> New Scene and we'll create the Mob." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:545 +msgid "Click Scene -> New Scene and add the following nodes:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:528 -msgid "The Mob scene will use the following nodes:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:530 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:547 msgid ":ref:`RigidBody2D ` (named ``Mob``)" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:532 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:549 msgid ":ref:`AnimatedSprite `" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:533 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:550 msgid ":ref:`CollisionShape2D `" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:534 -msgid "" -":ref:`VisibilityNotifier2D ` (named " -"``Visibility``)" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:551 +msgid ":ref:`VisibilityNotifier2D `" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:536 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:553 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/step_by_step/your_first_game.rst:539 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:556 msgid "" "In the :ref:`RigidBody2D ` properties, set ``Gravity " "Scale`` to ``0``, so the mob will not fall downward. In addition, under the " @@ -3828,149 +3869,166 @@ msgid "" "box. This will ensure the mobs do not collide with each other." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:546 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:563 msgid "" "Set up the :ref:`AnimatedSprite ` like you did for the " "player. This time, we have 3 animations: ``fly``, ``swim``, and ``walk``. " -"Set the ``Playing`` property in the Inspector to \"On\" and adjust the " -"\"Speed (FPS)\" setting as shown below. We'll select one of these animations " -"randomly so that the mobs will have some variety." +"There are two images for each animation in the art folder." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:553 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:567 +msgid "Adjust the \"Speed (FPS)\" to ``3`` for all animations." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:571 +msgid "Set the ``Playing`` property in the Inspector to “On”." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:573 msgid "" -"``fly`` should be set to 3 FPS, with ``swim`` and ``walk`` set to 4 FPS." +"We'll select one of these animations randomly so that the mobs will have " +"some variety." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:555 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:575 msgid "" "Like the player images, these mob images need to be scaled down. Set the " "``AnimatedSprite``'s ``Scale`` property to ``(0.75, 0.75)``." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:558 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:578 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 ``Node2D``." +"property to ``90`` (under \"Transform\" in the Inspector)." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:563 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:582 +msgid "Save the scene." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:585 msgid "Enemy script" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:565 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:587 msgid "Add a script to the ``Mob`` and add the following member variables:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:591 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:611 msgid "" "When we spawn a mob, we'll pick a random value between ``min_speed`` and " "``max_speed`` for how fast each mob will move (it would be boring if they " -"were all moving at the same speed). We also have an array containing the " -"names of the three animations, which we'll use to select a random one. Make " -"sure you've spelled these the same in the script and in the SpriteFrames " -"resource." +"were all moving at the same speed)." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:597 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:615 msgid "" "Now let's look at the rest of the script. In ``_ready()`` we randomly choose " "one of the three animation types:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:616 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:635 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. ``randi() % " -"n`` is the standard way to get a random integer between ``0`` and ``n-1``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:622 -msgid "" -"The last piece is to make the mobs delete themselves when they leave the " -"screen. Connect the ``screen_exited()`` signal of the ``Visibility`` node " -"and add this code:" +"First, we get the list of animation names from the AnimatedSprite's " +"``frames`` property. This returns an Array containing all three animation " +"names: ``[\"walk\", \"swim\", \"fly]``." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:639 +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/step_by_step/your_first_game.rst:643 +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/step_by_step/your_first_game.rst:647 +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/step_by_step/your_first_game.rst:664 msgid "This completes the `Mob` scene." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:642 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:667 msgid "Main scene" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:644 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:669 msgid "" "Now it's time to bring it all together. Create a new scene and add a :ref:" "`Node ` named ``Main``. Click the \"Instance\" button and select " "your saved ``Player.tscn``." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:650 -msgid "See :ref:`doc_instancing` to learn more about instancing." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:652 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:675 msgid "" "Now, add the following nodes as children of ``Main``, and name them as shown " "(values are in seconds):" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:655 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:678 msgid "" ":ref:`Timer ` (named ``MobTimer``) - to control how often mobs " "spawn" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:656 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:679 msgid "" ":ref:`Timer ` (named ``ScoreTimer``) - to increment the score " "every second" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:657 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:680 msgid "" ":ref:`Timer ` (named ``StartTimer``) - to give a delay before " "starting" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:658 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:681 msgid "" ":ref:`Position2D ` (named ``StartPosition``) - to indicate " "the player's start position" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:660 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:683 msgid "" "Set the ``Wait Time`` property of each of the ``Timer`` nodes as follows:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:663 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:686 msgid "``MobTimer``: ``0.5``" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:664 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:687 msgid "``ScoreTimer``: ``1``" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:665 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:688 msgid "``StartTimer``: ``2``" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:667 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:690 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/step_by_step/your_first_game.rst:671 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:694 msgid "Spawning mobs" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:673 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:696 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 " @@ -3978,7 +4036,7 @@ msgid "" "select ``Path2D``, you will see some new buttons at the top of the editor:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:680 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:703 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 " @@ -3986,19 +4044,19 @@ msgid "" "the \"Lock\" button, appearing as a magnet next to some intersecting lines." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:687 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:710 msgid "" "Draw the path in *clockwise* order, or your mobs will spawn pointing " "*outwards* instead of *inwards*!" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:690 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:715 msgid "" "After placing point ``4`` in the image, click the \"Close Curve\" button and " "your curve will be complete." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:693 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:718 msgid "" "Now that the path is defined, add a :ref:`PathFollow2D ` " "node as a child of ``MobPath`` and name it ``MobSpawnLocation``. This node " @@ -4006,40 +4064,61 @@ msgid "" "to select a random position and direction along the path." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:699 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:723 +msgid "Your scene should look like this:" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:728 msgid "Main script" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:701 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:730 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/step_by_step/your_first_game.rst:741 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:770 msgid "" -"Drag ``Mob.tscn`` from the \"FileSystem\" panel and drop it in the ``Mob`` " -"property under the Script Variables of the ``Main`` node." +"Click the ``Main`` node and you will see the ``Mob`` property in the " +"Inspector under \"Script Variables\"." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:744 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:773 +msgid "You can assign this property's value in two ways:" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:775 +msgid "" +"Drag ``Mob.tscn`` from the \"FileSystem\" panel and drop it in the ``Mob`` " +"property ." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:777 +msgid "" +"Click the down arrow next to \"[empty]\" and choose \"Load\". Select ``Mob." +"tscn``." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:780 msgid "" "Next, click on the Player and connect the ``hit`` signal. 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 \"Connecting Signal\" window. Add the following code, as well " -"as a ``new_game`` function to set everything up for a new game:" +"bottom of the \"Connect a Signal\" window 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/step_by_step/your_first_game.rst:781 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:818 msgid "" "Now connect the ``timeout()`` signal of each of the Timer nodes " -"(``StartTimer``, ``ScoreTimer`` ,and ``MobTimer``) to the main script. " +"(``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/step_by_step/your_first_game.rst:808 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:845 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 " @@ -4047,23 +4126,52 @@ msgid "" "we will use that to select the mob's direction as well as its position." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:814 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:851 msgid "" "Note that a new instance must be added to the scene using ``add_child()``." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:863 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:899 msgid "" -"In functions requiring angles, GDScript uses *radians*, not degrees. If " -"you're more comfortable working with degrees, you'll need to use the " -"``deg2rad()`` and ``rad2deg()`` functions to convert between the two." +"Why ``PI``? In functions requiring angles, GDScript uses *radians*, not " +"degrees. 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/step_by_step/your_first_game.rst:869 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:905 +msgid "Testing the scene" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:907 +msgid "" +"Let's test the scene to make sure everything is working. Add this to " +"``_ready()``:" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:924 +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/step_by_step/your_first_game.rst:928 +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/step_by_step/your_first_game.rst:931 +msgid "" +"When you're sure everything is working, remove the call to ``new_game()`` " +"from ``_ready()``." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:935 msgid "HUD" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:871 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:937 msgid "" "The final piece our game needs is a UI: an interface to display things like " "score, a \"game over\" message, and a restart button. Create a new scene, " @@ -4072,77 +4180,83 @@ msgid "" "overlay on top of the game view." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:877 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:943 msgid "" "The :ref:`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/step_by_step/your_first_game.rst:881 -msgid "The HUD displays the following information:" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:947 +msgid "The HUD needs to display the following information:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:883 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:949 msgid "Score, changed by ``ScoreTimer``." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:884 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:950 msgid "A message, such as \"Game Over\" or \"Get Ready!\"" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:885 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:951 msgid "A \"Start\" button to begin the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:887 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:953 msgid "" "The basic node for UI elements is :ref:`Control `. To create " "our UI, we'll use two types of :ref:`Control ` nodes: :ref:" "`Label ` and :ref:`Button `." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:891 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:957 msgid "Create the following as children of the ``HUD`` node:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:893 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:959 msgid ":ref:`Label ` named ``ScoreLabel``." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:894 -msgid ":ref:`Label ` named ``MessageLabel``." +#: ../../docs/getting_started/step_by_step/your_first_game.rst:960 +msgid ":ref:`Label ` named ``Message``." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:895 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:961 msgid ":ref:`Button ` named ``StartButton``." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:896 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:962 msgid ":ref:`Timer ` named ``MessageTimer``." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:898 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:964 msgid "" -"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " +"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 for each of the three " -"``Control`` nodes:" +"Regular.ttf\". To use this font, do the following:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:904 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:969 msgid "Under \"Custom Fonts\", choose \"New DynamicFont\"" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:908 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:973 msgid "" "Click on the \"DynamicFont\" you added, and under \"Font/Font Data\", choose " "\"Load\" and select the \"Xolonium-Regular.ttf\" file. You must also set the " "font's ``Size``. A setting of ``64`` works well." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:914 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:979 +msgid "" +"Once you've done this on the ``ScoreLabel``, you can click the down arrow " +"next to the DynamicFont property and choose \"Copy\", then \"Paste\" it in " +"the same place on the other two Control nodes." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:983 msgid "" "**Anchors and Margins:** ``Control`` nodes have a position and size, but " "they also have anchors and margins. Anchors define the origin - the " @@ -4152,100 +4266,105 @@ msgid "" "`doc_design_interfaces_with_the_control_nodes` for more details." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:921 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:990 msgid "" "Arrange the nodes as shown below. Click the \"Layout\" button to set a " "Control node's layout:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:926 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:995 msgid "" "You can drag the nodes to place them manually, or for more precise " "placement, use the following settings:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:930 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:999 msgid "ScoreLabel" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:932 -msgid "*Text* : ``0``" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:933 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1001 msgid "*Layout* : \"Top Wide\"" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:934 -#: ../../docs/getting_started/step_by_step/your_first_game.rst:941 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1002 +msgid "*Text* : ``0``" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1003 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1010 msgid "*Align* : \"Center\"" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:937 -msgid "MessageLabel" +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1006 +msgid "Message" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:939 -msgid "*Text* : ``Dodge the Creeps!``" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:940 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1008 msgid "*Layout* : \"HCenter Wide\"" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:942 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1009 +msgid "*Text* : ``Dodge the Creeps!``" +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1011 msgid "*Autowrap* : \"On\"" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:945 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1014 msgid "StartButton" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:947 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1016 msgid "*Text* : ``Start``" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:948 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1017 msgid "*Layout* : \"Center Bottom\"" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:949 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1018 msgid "*Margin* :" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:951 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1020 msgid "Top: ``-200``" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:952 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1021 msgid "Bottom: ``-100``" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:954 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1023 +msgid "" +"On the ``MessageTimer``, set the ``Wait Time`` to ``2`` and set the ``One " +"Shot`` property to \"On\"." +msgstr "" + +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1026 msgid "Now add this script to ``HUD``:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:973 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1045 msgid "" "The ``start_game`` signal tells the ``Main`` node that the button has been " "pressed." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:995 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1067 msgid "" "This function is called when we want to display a message temporarily, such " -"as \"Get Ready\". On the ``MessageTimer``, set the ``Wait Time`` to ``2`` " -"and set the ``One Shot`` property to \"On\"." +"as \"Get Ready\"." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1030 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1100 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/step_by_step/your_first_game.rst:1034 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1104 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 " @@ -4253,138 +4372,133 @@ msgid "" "time before showing the \"Start\" button." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1052 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1122 msgid "This function is called by ``Main`` whenever the score changes." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1054 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1124 msgid "" "Connect the ``timeout()`` signal of ``MessageTimer`` and the ``pressed()`` " -"signal of ``StartButton``." +"signal of ``StartButton`` and add the following code to the new functions:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1081 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1152 msgid "Connecting HUD to Main" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1083 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1154 msgid "" -"Now that we're done creating the ``HUD`` scene, save it and go back to " -"``Main``. Instance the ``HUD`` scene in ``Main`` like you did the ``Player`` " -"scene, and place it at the bottom of the tree. The full tree should look " -"like this, so make sure you didn't miss anything:" +"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/step_by_step/your_first_game.rst:1090 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1160 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/step_by_step/your_first_game.rst:1093 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1163 msgid "" "In the Node tab, connect the HUD's ``start_game`` signal to the " -"``new_game()`` function of the Main node." +"``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/step_by_step/your_first_game.rst:1096 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 msgid "" "In ``new_game()``, update the score display and show the \"Get Ready\" " "message:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1111 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1183 msgid "In ``game_over()`` we need to call the corresponding ``HUD`` function:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1122 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 msgid "" "Finally, add this to ``_on_ScoreTimer_timeout()`` to keep the display in " "sync with the changing score:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1134 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 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/step_by_step/your_first_game.rst:1138 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1210 msgid "Removing old creeps" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1140 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1212 msgid "" -"If you play until \"Game Over\" and then start a new game the creeps from " -"the previous game are still on screen. It would be better if they all " -"disappeared at the start of a new game." +"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/step_by_step/your_first_game.rst:1144 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" -"We'll use the ``start_game`` signal that's already being emitted by the " -"``HUD`` node to remove the remaining creeps. We can't use the editor to " -"connect the signal to the mobs in the way we need because there are no " -"``Mob`` nodes in the ``Main`` scene tree until we run the game. Instead " -"we'll use code." +"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/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1223 msgid "" -"Start by adding a new function to ``Mob.gd``. ``queue_free()`` will delete " -"the current node at the end of the current frame." +"Now all mobs will be in the \"mobs\" group. We can then add the following " +"line to the ``game_over()`` function in ``Main``:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1165 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1236 msgid "" -"Then in ``Main.gd`` add a new line inside the ``_on_MobTimer_timeout()`` " -"function, at the end." +"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/step_by_step/your_first_game.rst:1177 -msgid "" -"This line tells the new Mob node (referenced by the ``mob`` variable) to " -"respond to any ``start_game`` signal emitted by the ``HUD`` node by running " -"its ``_on_start_game()`` function." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1240 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1242 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. " "Feel free to expand the gameplay with your own ideas." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1247 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1191 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1249 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 ` " "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 drag the size of the ``ColorRect`` so that it covers the " +"color you like and select \"Layout\" -> \"Full Rect\" so that it covers the " "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1198 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1255 msgid "" "You could also add a background image, if you have one, by using a " -"``Sprite`` node." +"``TextureRect`` node instead." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1259 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1204 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1261 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: " @@ -4392,7 +4506,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1209 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1266 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4400,44 +4514,44 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1271 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/step_by_step/your_first_game.rst:1217 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1274 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1220 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1277 msgid "Keyboard shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1279 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. One way to " -"do this is using the \"Shortcut\" property of the ``Button`` node." +"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/step_by_step/your_first_game.rst:1226 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1283 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 \"InputEvent\". Finally, in the " +"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/step_by_step/your_first_game.rst:1234 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1291 msgid "" "Now when the start button appears, you can either click it or press :kbd:" "`Space` to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1238 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1295 msgid "Project files" msgstr "" @@ -4445,11 +4559,11 @@ msgstr "" msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1241 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1298 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1242 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1299 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4529,25 +4643,25 @@ msgid "" "changed:" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:246 +#: ../../docs/getting_started/step_by_step/exporting.rst:240 msgid "Setting a main scene" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:248 +#: ../../docs/getting_started/step_by_step/exporting.rst:242 msgid "" "The main scene is the one that your game will start in. In *Project -> " "Project Settings -> Application -> Run*, set *Main Scene* to \"Main.tscn\" " "by clicking the folder icon and selecting it." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:253 +#: ../../docs/getting_started/step_by_step/exporting.rst:247 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:196 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:265 #: ../../docs/development/compiling/compiling_with_mono.rst:167 msgid "Export templates" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:255 +#: ../../docs/getting_started/step_by_step/exporting.rst:249 msgid "" "In order to export, you need to download the *export templates* from the " "http://godotengine.org/download. These templates are optimized versions of " @@ -4555,68 +4669,68 @@ msgid "" "download them in Godot by clicking on *Editor -> Manage Export Templates*:" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:262 +#: ../../docs/getting_started/step_by_step/exporting.rst:256 msgid "" "In the window that appears, you can click \"Download\" to get the template " "version that matches your version of Godot." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:267 +#: ../../docs/getting_started/step_by_step/exporting.rst:261 msgid "" "If you upgrade Godot, you must download templates that match the new version " "or your exported projects may not work correctly." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:271 +#: ../../docs/getting_started/step_by_step/exporting.rst:265 msgid "Export presets" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:273 +#: ../../docs/getting_started/step_by_step/exporting.rst:267 msgid "" "Next, you can configure the export settings by clicking on *Project -> " "Export*." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:275 +#: ../../docs/getting_started/step_by_step/exporting.rst:269 msgid "" "Create a new export preset by clicking \"Add...\" and selecting a platform. " "You can make as many presets as you like with different settings." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:280 +#: ../../docs/getting_started/step_by_step/exporting.rst:274 msgid "" "At the bottom of the window are two buttons. \"Export PCK/ZIP\" only creates " "a packed version of your project's data. This doesn't include an executable " "so the project can't be run on its own." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:284 +#: ../../docs/getting_started/step_by_step/exporting.rst:278 msgid "" "The second button, \"Export Project\", creates a complete executable version " "of your game, such as an `.apk` for Android or an `.exe` for Windows." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:287 +#: ../../docs/getting_started/step_by_step/exporting.rst:281 msgid "" "In the \"Resources\" and \"Features\" tabs, you can customize how the game " "is exported for each platform. We can leave those settings alone for now." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:291 +#: ../../docs/getting_started/step_by_step/exporting.rst:285 msgid "Exporting by platform" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:293 +#: ../../docs/getting_started/step_by_step/exporting.rst:287 msgid "" "In this section, we'll walk through the process for each platform, including " "any additional software or requirements you'll need." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:297 +#: ../../docs/getting_started/step_by_step/exporting.rst:291 msgid "PC (Linux/macOS/Windows)" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:299 +#: ../../docs/getting_started/step_by_step/exporting.rst:293 msgid "" "Exporting PC platforms works the same across the three supported operating " "systems. Open the export window and click \"Add..\" to create the preset(s) " @@ -4624,11 +4738,11 @@ msgid "" "destination folder. Choose a location *outside* of your project folder." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:304 +#: ../../docs/getting_started/step_by_step/exporting.rst:298 msgid "Click \"Save\" and the engine will build the export files." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:306 +#: ../../docs/getting_started/step_by_step/exporting.rst:300 msgid "" "When exporting for macOS, if you export on a macOS computer, you'll end up " "with a `.dmg` file, while using Linux or Windows produces a `.zip`. In " @@ -4636,14 +4750,14 @@ msgid "" "click and run." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:311 +#: ../../docs/getting_started/step_by_step/exporting.rst:305 msgid "" "On Windows, if you want your exported executable to have a different icon " "than the default one, you need to change it manually. See: :ref:" "`doc_changing_application_icon_for_windows`." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:318 +#: ../../docs/getting_started/step_by_step/exporting.rst:312 msgid "" "Mobile devices come with a wide variety of capabilities. In most cases, " "Godot's default settings will work, but mobile development is sometimes more " @@ -4651,35 +4765,35 @@ msgid "" "for help in order to get everything working." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:324 +#: ../../docs/getting_started/step_by_step/exporting.rst:318 msgid "" "Before you can export your project for Android, you must download the " "following software:" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:327 +#: ../../docs/getting_started/step_by_step/exporting.rst:321 msgid "Android SDK: https://developer.android.com/studio/" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:328 +#: ../../docs/getting_started/step_by_step/exporting.rst:322 msgid "" "Java JDK: http://www.oracle.com/technetwork/java/javase/downloads/index.html" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:330 +#: ../../docs/getting_started/step_by_step/exporting.rst:324 msgid "" "When you run Android Studio for the first time, click on *Configure -> SDK " "Manager* and install \"Android SDK Platform Tools\". This installs the `adb` " "command-line tool that Godot uses to communicate with your device." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:334 +#: ../../docs/getting_started/step_by_step/exporting.rst:328 msgid "" "Next, create a debug keystore by running the following command on your " "system's command line:" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:341 +#: ../../docs/getting_started/step_by_step/exporting.rst:335 msgid "" "Click on *Editor -> Editor Settings* in Godot and select the *Export/" "Android* section. Here, you need to set the paths to the Android SDK " @@ -4687,45 +4801,45 @@ msgid "" "created." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:347 +#: ../../docs/getting_started/step_by_step/exporting.rst:341 msgid "" "Now you're ready to export. Click on *Project -> Export* and add a preset " "for Android (see above). Select the Android Presets and under *Options* go " "to *Screen* and set *Orientation* to \"Portrait\"." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:351 +#: ../../docs/getting_started/step_by_step/exporting.rst:345 msgid "" "Click the \"Export Project\" button and Godot will build an APK you can " "download on your device. To do this on the command line, use the following:" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:358 +#: ../../docs/getting_started/step_by_step/exporting.rst:352 msgid "" "Your device may need to be in *developer mode*. Consult your device's " "documentation for details." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:361 +#: ../../docs/getting_started/step_by_step/exporting.rst:355 msgid "" "If your system supports it, connecting a compatible Android device will " "cause a \"One-click Deploy\" button to appear in Godot's playtest button " "area:" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:366 +#: ../../docs/getting_started/step_by_step/exporting.rst:360 msgid "" "Clicking this button builds the APK and copies it onto your device in one " "step." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:371 +#: ../../docs/getting_started/step_by_step/exporting.rst:365 msgid "" "In order to build your game for iOS, you must have a computer running macOS " "with Xcode installed." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:374 +#: ../../docs/getting_started/step_by_step/exporting.rst:368 msgid "" "Before exporting, there are some settings that you *must* complete for the " "project to export successfully. First, the \"App Store Team Id\", which you " @@ -4733,44 +4847,44 @@ msgid "" "\"Membership\" section." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:378 +#: ../../docs/getting_started/step_by_step/exporting.rst:372 msgid "You must also provide icons and splash screen images as shown below:" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:382 +#: ../../docs/getting_started/step_by_step/exporting.rst:376 msgid "Click \"Export Project\" and select a destination folder." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:384 +#: ../../docs/getting_started/step_by_step/exporting.rst:378 msgid "" "Once you have successfully exported the project, you'll find the following " "folders and files have been created in your selected location:" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:389 +#: ../../docs/getting_started/step_by_step/exporting.rst:383 msgid "" "You can now open the project in Xcode and build the project for iOS. Xcode " "build procedure is beyond the scope of this tutorial. See https://help.apple." "com/xcode/mac/current/#/devc8c2a6be1 for more information." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:395 +#: ../../docs/getting_started/step_by_step/exporting.rst:389 msgid "HTML5 (web)" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:397 +#: ../../docs/getting_started/step_by_step/exporting.rst:391 msgid "" "Click \"Export Project\" on the HTML5 preset. We don't need to change any of " "the default settings." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:400 +#: ../../docs/getting_started/step_by_step/exporting.rst:394 msgid "" "When the export is complete, you'll have a folder containing the following " "files:" msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:405 +#: ../../docs/getting_started/step_by_step/exporting.rst:399 msgid "" "Viewing the `.html` file in your browser lets you play the game. However, " "you can't open the file directly, it needs to be served by a web server. If " @@ -4778,21 +4892,21 @@ msgid "" "suggestions for your specific OS." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:410 +#: ../../docs/getting_started/step_by_step/exporting.rst:404 msgid "" "Point your browser at the URL where you've placed the html file. You may " "have to wait a few moments while the game loads before you see the start " "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:415 +#: ../../docs/getting_started/step_by_step/exporting.rst:409 msgid "" "The console window beneath the game tells you if anything goes wrong. You " "can disable it by setting \"Export With Debug\" off when you export the " "project." msgstr "" -#: ../../docs/getting_started/step_by_step/exporting.rst:420 +#: ../../docs/getting_started/step_by_step/exporting.rst:414 msgid "" "While WASM is supported in all major browsers, it is still an emerging " "technology and you may find some things that don't work. Make sure you have " @@ -4875,7 +4989,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:49 #: ../../docs/tutorials/assetlib/using_assetlib.rst:16 -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:83 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:82 msgid "|image0|" msgstr "" @@ -4947,7 +5061,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:91 -#: ../../docs/tutorials/assetlib/using_assetlib.rst:83 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:81 msgid "|image3|" msgstr "" @@ -4968,7 +5082,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:102 -#: ../../docs/tutorials/assetlib/using_assetlib.rst:88 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:86 msgid "|image4|" msgstr "" @@ -5051,7 +5165,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:154 -#: ../../docs/tutorials/assetlib/using_assetlib.rst:92 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:90 msgid "|image5|" msgstr "" @@ -7918,7 +8032,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:4 #: ../../docs/tutorials/threads/thread_safe_apis.rst:58 #: ../../docs/development/file_formats/tscn.rst:257 -#: ../../docs/community/tutorials.rst:52 +#: ../../docs/community/tutorials.rst:53 msgid "Resources" msgstr "" @@ -8161,30 +8275,21 @@ msgid "" "They can extend **other** resource types besides just the base Resource." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:185 -msgid "" -"Resources and Dictionaries are both passed by reference, but only Resources " -"are reference-counted. This means that if a Dictionary is passed between " -"objects and the first object is deleted, all other objects' references to " -"the Dictionary will be invalidated. Conversely, Resources will not be freed " -"from memory until *all* the objects are deleted." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:215 +#: ../../docs/getting_started/step_by_step/resources.rst:183 msgid "Godot makes it easy to create custom Resources in the Inspector." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:217 +#: ../../docs/getting_started/step_by_step/resources.rst:185 msgid "" "Create a plain Resource object in the Inspector. This can even be a type " "that derives Resource, so long as your script is extending that type." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:218 +#: ../../docs/getting_started/step_by_step/resources.rst:186 msgid "Set the ``script`` property in the Inspector to be your script." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:220 +#: ../../docs/getting_started/step_by_step/resources.rst:188 msgid "" "The Inspector will now display your Resource script's custom properties. If " "one edits those values and saves the resource, the Inspector serializes the " @@ -8192,7 +8297,7 @@ msgid "" "Inspector's tools menu (top right), and select \"Save\" or \"Save As...\"." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:225 +#: ../../docs/getting_started/step_by_step/resources.rst:193 msgid "" "If the script's language supports :ref:`script classes " "`, then it streamlines the process. " @@ -8201,11 +8306,11 @@ msgid "" "create." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:230 +#: ../../docs/getting_started/step_by_step/resources.rst:198 msgid "Let's see some examples." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:303 +#: ../../docs/getting_started/step_by_step/resources.rst:271 msgid "" "Resource scripts are similar to Unity's ScriptableObjects. The Inspector " "provides built-in support for custom resources. If desired though, users can " @@ -8214,38 +8319,38 @@ msgid "" "editors for their data." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:309 +#: ../../docs/getting_started/step_by_step/resources.rst:277 msgid "" "Unreal Engine 4's DataTables and CurveTables are also easy to recreate with " "Resource scripts. DataTables are a String mapped to a custom struct, similar " "to a Dictionary mapping a String to a secondary custom Resource script." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:345 +#: ../../docs/getting_started/step_by_step/resources.rst:313 msgid "" "Instead of just inlining the Dictionary values, one could also, " "alternatively..." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:347 +#: ../../docs/getting_started/step_by_step/resources.rst:315 msgid "" "Import a table of values from a spreadsheet and generate these key-value " "pairs, or..." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:349 +#: ../../docs/getting_started/step_by_step/resources.rst:317 msgid "" "Design a visualization within the editor and create a simple plugin that " "adds it to the Inspector when you open these types of Resources." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:352 +#: ../../docs/getting_started/step_by_step/resources.rst:320 msgid "" "CurveTables are the same thing, except mapped to an Array of float values or " "a :ref:`Curve `/:ref:`Curve2D ` resource object." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:357 +#: ../../docs/getting_started/step_by_step/resources.rst:325 msgid "" "Beware that resource files (\\*.tres/\\*.res) will store the path of the " "script they use in the file. When loaded, they will fetch and load this " @@ -8255,7 +8360,7 @@ msgid "" "properties on the script subclass properly." msgstr "" -#: ../../docs/getting_started/step_by_step/resources.rst:363 +#: ../../docs/getting_started/step_by_step/resources.rst:331 msgid "" "In the example below, Godot would load the ``Node`` script, see that it " "doesn't extend ``Resource``, and then determine that the script failed to " @@ -9502,9 +9607,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:302 #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:17 #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:52 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:109 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:156 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:205 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:110 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:214 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:53 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:65 @@ -10051,7 +10156,7 @@ msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:240 #: ../../docs/tutorials/platform/customizing_html5_shell.rst:172 -#: ../../docs/development/cpp/configuring_an_ide.rst:294 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:30 msgid "Debugging" msgstr "" @@ -10207,7 +10312,7 @@ msgstr "" #: ../../docs/getting_started/editor/external_editor.rst:40 #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:105 -#: ../../docs/development/cpp/configuring_an_ide.rst:331 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:4 msgid "Visual Studio Code" msgstr "" @@ -13101,7 +13206,7 @@ msgid "else" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:149 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:785 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:801 msgid "for" msgstr "" @@ -13110,7 +13215,7 @@ msgid "See for_." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:151 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:774 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:790 msgid "while" msgstr "" @@ -13119,7 +13224,7 @@ msgid "See while_." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:153 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:820 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:836 msgid "match" msgstr "" @@ -13571,106 +13676,114 @@ msgid "Ternary if/else" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:274 -msgid "``=`` ``+=`` ``-=`` ``*=`` ``/=`` ``%=`` ``&=`` ``|=``" +msgid "``as``" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:274 +msgid "Type casting" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:276 +msgid "``=`` ``+=`` ``-=`` ``*=`` ``/=`` ``%=`` ``&=`` ``|=``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:276 msgid "Assignment (lowest priority)" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:278 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:280 msgid "Literals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:281 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:283 msgid "**Literal**" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:281 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:283 #: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:242 #: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:264 msgid "**Type**" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:283 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:285 msgid "``45``" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:283 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:285 msgid "Base 10 integer" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:285 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:287 msgid "``0x8F51``" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:285 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:287 msgid "Base 16 (hexadecimal) integer" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:287 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:289 msgid "``0b101010``" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:287 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:289 msgid "Base 2 (binary) integer" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:289 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:291 msgid "``3.14``, ``58.1e-10``" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:289 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:291 msgid "Floating-point number (real)" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:291 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:293 msgid "``\"Hello\"``, ``\"Hi\"``" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:291 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:293 msgid "Strings" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:293 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:295 msgid "``\"\"\"Hello\"\"\"``" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:293 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:295 msgid "Multiline string" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:295 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:297 msgid "``@\"Node/Label\"``" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:295 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:297 msgid ":ref:`class_NodePath` or StringName" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:297 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:299 msgid "``$NodePath``" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:297 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:299 msgid "Shorthand for ``get_node(\"NodePath\")``" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:301 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:303 msgid "Comments" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:303 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:305 msgid "" "Anything from a ``#`` to the end of the line is ignored and is considered a " "comment." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:313 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:315 msgid "Built-in types" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:315 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:317 msgid "" "Built-in types are stack-allocated. They are passed as values. This means a " "copy is created on each assignment or when passing them as arguments to " @@ -13679,48 +13792,48 @@ msgid "" "``PoolByteArray`` are still passed as values.)" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:322 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:324 msgid "Basic built-in types" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:324 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:326 msgid "A variable in GDScript can be assigned to several built-in types." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:327 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:329 #: ../../docs/tutorials/misc/binary_serialization_api.rst:25 msgid "null" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:329 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:331 msgid "" "``null`` is an empty data type that contains no information and can not be " "assigned any other value." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:333 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:335 msgid ":ref:`bool `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:335 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:337 msgid "Short for \"boolean\", it can only contain ``true`` or ``false``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:338 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:340 msgid ":ref:`int `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:340 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:342 msgid "" "Short for \"integer\", it stores whole numbers (positive and negative). It " "is stored as a 64-bit value, equivalent to \"int64_t\" in C++." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:344 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:346 msgid ":ref:`float `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:346 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:348 msgid "" "Stores real numbers, including decimals, using floating-point values. It is " "stored as a 64-bit value, equivalent to \"double\" in C++. Note: Currently, " @@ -13728,11 +13841,11 @@ msgid "" "single-precision \"float\" values." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:352 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:354 msgid ":ref:`String `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:354 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:356 msgid "" "A sequence of characters in `Unicode format `_. Strings can contain `standard C escape sequences `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:365 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:367 msgid "" "2D vector type containing ``x`` and ``y`` fields. Can also be accessed as an " "array." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:369 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:371 msgid ":ref:`Rect2 `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:371 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:373 msgid "" "2D Rectangle type containing two vectors fields: ``position`` and ``size``. " "Also contains an ``end`` field which is ``position + size``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:375 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:377 msgid ":ref:`Vector3 `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:377 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:379 msgid "" "3D vector type containing ``x``, ``y`` and ``z`` fields. This can also be " "accessed as an array." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:381 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:383 msgid ":ref:`Transform2D `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:383 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:385 msgid "3×2 matrix used for 2D transforms." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:386 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:388 msgid ":ref:`Plane `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:388 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:390 msgid "" "3D Plane type in normalized form that contains a ``normal`` vector field and " "a ``d`` scalar distance." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:392 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:394 msgid ":ref:`Quat `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:394 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:396 msgid "" "Quaternion is a datatype used for representing a 3D rotation. It's useful " "for interpolating rotations." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:398 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:400 msgid ":ref:`AABB `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:400 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:402 msgid "" "Axis-aligned bounding box (or 3D box) contains 2 vectors fields: " "``position`` and ``size``. Also contains an ``end`` field which is " "``position + size``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:405 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:407 msgid ":ref:`Basis `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:407 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:409 msgid "" "3x3 matrix used for 3D rotation and scale. It contains 3 vector fields " "(``x``, ``y`` and ``z``) and can also be accessed as an array of 3D vectors." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:412 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:414 msgid ":ref:`Transform `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:414 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:416 msgid "" "3D Transform contains a Basis field ``basis`` and a Vector3 field ``origin``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:418 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:420 msgid "Engine built-in types" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:421 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:423 msgid ":ref:`Color `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:423 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:425 msgid "" "Color data type contains ``r``, ``g``, ``b``, and ``a`` fields. It can also " "be accessed as ``h``, ``s``, and ``v`` for hue/saturation/value." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:427 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:429 msgid ":ref:`NodePath `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:429 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:431 msgid "" "Compiled path to a node used mainly in the scene system. It can be easily " "assigned to, and from, a String." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:433 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:435 msgid ":ref:`RID `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:435 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:437 msgid "Resource ID (RID). Servers use generic RIDs to reference opaque data." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:438 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:440 msgid ":ref:`Object `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:440 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:442 msgid "Base class for anything that is not a built-in type." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:443 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:445 msgid "Container built-in types" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:446 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:448 msgid ":ref:`Array `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:448 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:450 msgid "" "Generic sequence of arbitrary object types, including other arrays or " "dictionaries (see below). The array can resize dynamically. Arrays are " "indexed starting from index ``0``. Negative indices count from the end." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:462 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:464 msgid "" "GDScript arrays are allocated linearly in memory for speed. Large arrays " "(more than tens of thousands of elements) may however cause memory " @@ -13897,51 +14010,51 @@ msgid "" "They are therefore only recommended to use for large data sets:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:469 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:471 msgid "" ":ref:`PoolByteArray `: An array of bytes (integers from " "0 to 255)." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:470 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:472 msgid ":ref:`PoolIntArray `: An array of integers." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:471 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:473 msgid ":ref:`PoolRealArray `: An array of floats." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:472 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:474 msgid ":ref:`PoolStringArray `: An array of strings." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:473 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:475 msgid "" ":ref:`PoolVector2Array `: An array of :ref:`Vector2 " "` objects." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:474 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:476 msgid "" ":ref:`PoolVector3Array `: An array of :ref:`Vector3 " "` objects." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:475 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:477 msgid "" ":ref:`PoolColorArray `: An array of :ref:`Color " "` objects." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:480 msgid ":ref:`Dictionary `" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:480 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:482 msgid "Associative container which contains values referenced by unique keys." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:493 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:495 msgid "" "Lua-style table syntax is also supported. Lua-style uses ``=`` instead of ``:" "`` and doesn't use quotes to mark string keys (making for slightly less to " @@ -13949,18 +14062,27 @@ msgid "" "any GDScript identifier)." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:507 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:509 msgid "" "To add a key to an existing dictionary, access it like an existing key and " "assign to it::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:525 +msgid "" +"The bracket syntax can be used to access properties of any :ref:" +"`class_Object`, not just Dictionaries. Keep in mind it will cause a script " +"error when attempting to index a non-existing property. To avoid this, use " +"the :ref:`Object.get() ` and :ref:`Object.set() " +"` methods instead." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:532 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:228 msgid "Data" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:519 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:535 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 @@ -13968,105 +14090,105 @@ msgstr "" msgid "Variables" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:521 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:537 msgid "" "Variables can exist as class members or local to functions. They are created " "with the ``var`` keyword and may, optionally, be assigned a value upon " "initialization." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:532 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 msgid "" "Variables can optionally have a type specification. When a type is " "specified, the variable will be forced to have always that same type, and " "trying to assign an incompatible value will raise an error." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:536 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:552 msgid "" "Types are specified in the variable declaration using a ``:`` (colon) symbol " "after the variable name, followed by the type." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:544 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:560 msgid "" "If the variable is initialized within the declaration, the type can be " "inferred, so it's possible to omit the type name::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:550 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:566 msgid "" "Type inference is only possible if the assigned value has a defined type, " "otherwise it will raise an error." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:553 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:569 #: ../../docs/tutorials/shading/shading_reference/shaders.rst:39 msgid "Valid types are:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:555 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:571 msgid "Built-in types (Array, Vector2, int, String, etc.)." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:556 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:572 msgid "Engine classes (Node, Resource, Reference, etc.)." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:557 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:573 msgid "" "Constant names if they contain a script resource (``MyScript`` if you " "declared ``const MyScript = preload(\"res://my_script.gd\")``)." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:558 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:574 msgid "" "Other classes in the same script, respecting scope (``InnerClass." "NestedClass`` if you declared ``class NestedClass`` inside the ``class " "InnerClass`` in the same scope)." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:559 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:575 msgid "Script classes declared with the ``class_name`` keyword." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:562 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:578 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:85 msgid "Casting" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:564 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:580 msgid "" "Values assigned to typed variables must have a compatible type. If it's " "needed to coerce a value to be of a certain type, in particular for object " "types, you can use the casting operator ``as``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:584 msgid "" "Casting between object types results in the same object if the value is of " "the same type or a subtype of the cast type." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:576 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:592 msgid "" "If the value is not a subtype, the casting operation will result in a " "``null`` value." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:583 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:599 msgid "" "For built-in types, they will be forcibly converted if possible, otherwise " "the engine will raise an error." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:592 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:608 msgid "" "Casting is also useful to have better type-safe variables when interacting " "with the scene tree::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:602 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:618 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:211 #: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:22 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:256 @@ -14076,52 +14198,52 @@ msgstr "" msgid "Constants" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:604 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:620 msgid "" "Constants are similar to variables, but must be constants or constant " "expressions and must be assigned on initialization." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:618 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:634 msgid "" "Although the type of constants is inferred from the assigned value, it's " "also possible to add explicit type specification::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:624 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:640 msgid "Assigning a value of an incompatible type will raise an error." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:627 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:643 msgid "Enums" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:629 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:645 msgid "" "Enums are basically a shorthand for constants, and are pretty useful if you " "want to assign consecutive integers to some constant." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:632 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:648 msgid "" "If you pass a name to the enum, it will put all the keys inside a constant " "dictionary of that name." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:635 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:651 msgid "" "In Godot 3.1 and later, keys in a named enum are not registered as global " "constants. They should be accessed prefixed by the enum's name (``Name." "KEY``); see an example below." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:655 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:671 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:391 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:378 msgid "Functions" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:657 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:673 msgid "" "Functions always belong to a `class `_. The scope priority for " "variable look-up is: local → class member → global. The ``self`` variable is " @@ -14130,30 +14252,30 @@ msgid "" "argument, unlike Python)." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:686 msgid "" "A function can ``return`` at any point. The default return value is ``null``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:672 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:688 msgid "" "Functions can also have type specification for the arguments and for the " "return value. Types for arguments can be added in a similar way to " "variables::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:678 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:694 msgid "" "If a function argument has a default value, it's possible to infer the type::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:683 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:699 msgid "" "The return type of the function can be specified after the arguments list " "using the arrow token (``->``)::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:689 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:705 msgid "" "Functions that have a return type **must** return a proper value. Setting " "the type as ``void`` means the function doesn't return anything. Void " @@ -14161,7 +14283,7 @@ msgid "" "return any value." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:698 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:714 msgid "" "Non-void functions must **always** return a value, so if your code has " "branching statements (such as an ``if``/``else`` construct), all the " @@ -14170,11 +14292,11 @@ msgid "" "block is not executed, the function won't have a valid value to return." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:706 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:722 msgid "Referencing functions" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:708 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:724 msgid "" "Contrary to Python, functions are *not* first-class objects in GDScript. " "This means they cannot be stored in variables, passed as an argument to " @@ -14182,40 +14304,40 @@ msgid "" "performance reasons." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:712 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:728 msgid "" "To reference a function by name at run-time, (e.g. to store it in a " "variable, or pass it to another function as an argument) one must use the " "``call`` or ``funcref`` helpers::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:726 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:742 msgid "Static functions" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:728 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:744 msgid "" "A function can be declared static. When a function is static, it has no " "access to the instance member variables or ``self``. This is mainly useful " "to make libraries of helper functions::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:737 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:753 msgid "Statements and control flow" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:739 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:755 msgid "" "Statements are standard and can be assignments, function calls, control flow " "structures, etc (see below). ``;`` as a statement separator is entirely " "optional." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:744 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:760 msgid "if/else/elif" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:746 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:762 msgid "" "Simple conditions are created by using the ``if``/``else``/``elif`` syntax. " "Parenthesis around conditions are allowed, but not required. Given the " @@ -14223,23 +14345,23 @@ msgid "" "``else``/``if`` to maintain a level of indentation." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:760 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:776 msgid "Short statements can be written on the same line as the condition::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:767 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:783 msgid "" "Sometimes, you might want to assign a different initial value based on a " "boolean expression. In this case, ternary-if expressions come in handy::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:776 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:792 msgid "" "Simple loops are created by using ``while`` syntax. Loops can be broken " "using ``break`` or continued using ``continue``:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:787 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:803 msgid "" "To iterate through a range, such as an array or table, a *for* loop is used. " "When iterating over an array, the current array element is stored in the " @@ -14247,180 +14369,180 @@ msgid "" "the loop variable." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:822 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:838 msgid "" "A ``match`` statement is used to branch execution of a program. It's the " "equivalent of the ``switch`` statement found in many other languages, but " "offers some additional features." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:825 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:841 msgid "Basic syntax::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:836 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:852 msgid "**Crash-course for people who are familiar with switch statements**:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:838 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:854 msgid "Replace ``switch`` with ``match``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:839 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:855 msgid "Remove ``case``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:840 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:856 msgid "" "Remove any ``break``\\ s. If you don't want to ``break`` by default, you can " "use ``continue`` for a fallthrough." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:841 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:857 msgid "Change ``default`` to a single underscore." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:844 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:860 msgid "**Control flow**:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:846 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:862 msgid "" -"The patterns are matched from top to bottom. If a pattern matches, the " +"The patterns are matched from top to bottom. If a pattern matches, the first " "corresponding block will be executed. After that, the execution continues " "below the ``match`` statement. If you want to have a fallthrough, you can " -"use ``continue`` to stop execution in the current block and check the ones " -"below it." +"use ``continue`` to stop execution in the current block and check for an " +"additional match in the patterns below it." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:850 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:866 msgid "There are 6 pattern types:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:862 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:878 msgid "Constant pattern" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:853 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:869 msgid "Constant primitives, like numbers and strings::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:874 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:890 msgid "Variable pattern" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:865 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:881 msgid "Matches the contents of a variable/enum::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:888 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:904 msgid "Wildcard pattern" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:877 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:893 msgid "This pattern matches everything. It's written as a single underscore." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:879 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:895 msgid "" "It can be used as the equivalent of the ``default`` in a ``switch`` " "statement in other languages::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:901 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:917 msgid "Binding pattern" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:891 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:907 msgid "" "A binding pattern introduces a new variable. Like the wildcard pattern, it " "matches everything - and also gives that value a name. It's especially " "useful in array and dictionary patterns::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:922 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:938 msgid "Array pattern" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:904 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:920 msgid "" "Matches an array. Every single element of the array pattern is a pattern " "itself, so you can nest them." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:906 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:922 msgid "" "The length of the array is tested first, it has to be the same size as the " "pattern, otherwise the pattern doesn't match." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:908 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:924 msgid "" "**Open-ended array**: An array can be bigger than the pattern by making the " "last subpattern ``..``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:910 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:926 msgid "Every subpattern has to be comma-separated." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:949 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:965 msgid "Dictionary pattern" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:925 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:941 msgid "" "Works in the same way as the array pattern. Every key has to be a constant " "pattern." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:927 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:943 msgid "" "The size of the dictionary is tested first, it has to be the same size as " "the pattern, otherwise the pattern doesn't match." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:929 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:945 msgid "" "**Open-ended dictionary**: A dictionary can be bigger than the pattern by " "making the last subpattern ``..``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:931 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:947 msgid "Every subpattern has to be comma separated." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:933 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:949 msgid "" "If you don't specify a value, then only the existence of the key is checked." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:935 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:951 msgid "A value pattern is separated from the key pattern with a ``:``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:962 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:978 msgid "Multiple patterns" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:952 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:968 msgid "" "You can also specify multiple patterns separated by a comma. These patterns " "aren't allowed to have any bindings in them." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:965 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:981 msgid "Classes" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:967 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:983 msgid "" "By default, all script files are unnamed classes. In this case, you can only " "reference them using the file's path, using either a relative or an absolute " "path. For example, if you name a script file ``character.gd``::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:980 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:996 msgid "" "Instead, you can give your class a name to register it as a new type in " "Godot's editor. For that, you use the ``class_name`` keyword. You can add an " @@ -14428,11 +14550,11 @@ msgid "" "class will then appear with its new icon in the editor::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:992 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1008 msgid "Here's a class file example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1014 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1030 msgid "" "Godot's class syntax is compact: it can only contain member variables or " "functions. You can use static functions, but not static member variables. In " @@ -14442,48 +14564,48 @@ msgid "" "without the user knowing." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1022 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1038 #: ../../docs/getting_started/scripting/cross_language_scripting.rst:204 msgid "Inheritance" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1024 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1040 msgid "A class (stored as a file) can inherit from:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1026 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1042 msgid "A global class." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1027 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1043 msgid "Another class file." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1028 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1044 msgid "An inner class inside another class file." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1030 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1046 msgid "Multiple inheritance is not allowed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1032 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1048 msgid "Inheritance uses the ``extends`` keyword::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1044 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1060 msgid "" "To check if a given instance inherits from a given class, the ``is`` keyword " "can be used::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1056 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1072 msgid "" "To call a function in a *parent class* (i.e. one ``extend``-ed in your " "current class), prepend ``.`` to the function name::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1061 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1077 msgid "" "This is especially useful because functions in extending classes replace " "functions with the same name in their parent classes. If you still want to " @@ -14491,7 +14613,7 @@ msgid "" "other languages)::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1069 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1085 msgid "" "Default functions like ``_init``, and most notifications such as " "``_enter_tree``, ``_exit_tree``, ``_process``, ``_physics_process``, etc. " @@ -14499,11 +14621,11 @@ msgid "" "them explicitly when overloading them." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1076 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1092 msgid "Class Constructor" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1078 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1094 msgid "" "The class constructor, called on class instantiation, is named ``_init``. As " "mentioned earlier, the constructors of parent classes are called " @@ -14511,22 +14633,22 @@ msgid "" "``._init()`` explicitly." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1083 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1099 msgid "" "Unlike the call of a regular function, like in the above example with ``." "some_func``, if the constructor from the inherited class takes arguments, " "they are passed like this::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1090 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1106 msgid "This is better explained through examples. Consider this scenario::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1113 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1129 msgid "There are a few things to keep in mind here:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1115 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1131 msgid "" "If the inherited class (``State.gd``) defines a ``_init`` constructor that " "takes arguments (``e`` in this case), then the inheriting class (``Idle." @@ -14534,19 +14656,19 @@ msgid "" "``_init`` from ``State.gd``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1118 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1134 msgid "" "``Idle.gd`` can have a different number of arguments than the parent class " "``State.gd``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1119 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1135 msgid "" "In the example above, ``e`` passed to the ``State.gd`` constructor is the " "same ``e`` passed in to ``Idle.gd``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1121 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1137 msgid "" "If ``Idle.gd``'s ``_init`` constructor takes 0 arguments, it still needs to " "pass some value to the ``State.gd`` parent class, even if it does nothing. " @@ -14554,21 +14676,21 @@ msgid "" "constructor as well, not just variables. eg.::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1131 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1147 msgid "Inner classes" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1133 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1149 msgid "" "A class file can contain inner classes. Inner classes are defined using the " "``class`` keyword. They are instanced using the ``ClassName.new()`` function." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1158 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1174 msgid "Classes as resources" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1160 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1176 msgid "" "Classes stored as files are treated as :ref:`resources `. " "They must be loaded from disk to access them in other classes. This is done " @@ -14577,33 +14699,33 @@ msgid "" "class object::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1177 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1193 msgid "Exports" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1181 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1197 msgid "" "Documentation about exports has been moved to :ref:`doc_gdscript_exports`." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1184 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1200 msgid "Setters/getters" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1186 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1202 msgid "" "It is often useful to know when a class' member variable changes for " "whatever reason. It may also be desired to encapsulate its access in some " "way." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1189 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1205 msgid "" "For this, GDScript provides a *setter/getter* syntax using the ``setget`` " "keyword. It is used directly after a variable definition:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1196 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1212 msgid "" "Whenever the value of ``variable`` is modified by an *external* source (i.e. " "not from local usage in the class), the *setter* function (``setterfunc`` " @@ -14613,28 +14735,28 @@ msgid "" "``return`` the desired value. Below is an example::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1212 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1228 msgid "Either of the *setter* or *getter* functions can be omitted::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1219 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1235 msgid "" "Setters and getters are useful when :ref:`exporting variables " "` to the editor in tool scripts or plugins, for " "validating input." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1222 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1238 msgid "" "As said, *local* access will *not* trigger the setter and getter. Here is an " "illustration of this:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1239 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1255 msgid "Tool mode" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1241 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1257 msgid "" "By default, scripts don't run inside the editor and only the exported " "properties can be changed. In some cases, it is desired that they do run " @@ -14643,22 +14765,22 @@ msgid "" "top of the file::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1255 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1271 msgid "See :ref:`doc_running_code_in_the_editor` for more information." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1257 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1273 msgid "" "Be cautious when freeing nodes with ``queue_free()`` or ``free()`` in a tool " "script (especially the script's owner itself). As tool scripts run their " "code in the editor, misusing them may lead to crashing the editor." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1263 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1279 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1265 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1281 msgid "" "If a class inherits from :ref:`class_Reference`, then instances will be " "freed when no longer in use. No garbage collector exists, just reference " @@ -14669,20 +14791,20 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1273 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1289 msgid "" "Alternatively, when not using references, the " "``is_instance_valid(instance)`` can be used to check if an object has been " "freed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1282 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1298 msgid "" "Signals are a tool to emit messages from an object that other objects can " "react to. To create custom signals for a class, use the ``signal`` keyword." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1295 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1311 msgid "" "Signals are a `Callback `_ mechanism. They also fill the role of " @@ -14691,31 +14813,31 @@ msgid "" "the Game Programming Patterns ebook." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1302 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1318 msgid "" "You can connect these signals to methods the same way you connect built-in " "signals of nodes like :ref:`class_Button` or :ref:`class_RigidBody`." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1305 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1321 msgid "" "In the example below, we connect the ``health_depleted`` signal from a " "``Character`` node to a ``Game`` node. When the ``Character`` node emits the " "signal, the game node's ``_on_Character_health_depleted`` is called::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1319 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1335 msgid "You can emit as many arguments as you want along with a signal." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1321 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1337 msgid "" "Here is an example where this is useful. Let's say we want a life bar on " "screen to react to health changes with an animation, but we want to keep the " "user interface separate from the player in our scene tree." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1325 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1341 msgid "" "In our ``Character.gd`` script, we define a ``health_changed`` signal and " "emit it with :ref:`Object.emit_signal() `, " @@ -14724,32 +14846,32 @@ msgid "" "method::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1366 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1382 msgid "" "To use signals, your class has to extend the ``Object`` class or any type " "extending it like ``Node``, ``KinematicBody``, ``Control``..." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1369 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1385 msgid "" "In the ``Game`` node, we get both the ``Character`` and ``Lifebar`` nodes, " "then connect the character, that emits the signal, to the receiver, the " "``Lifebar`` node in this case." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1383 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1399 msgid "" "This allows the ``Lifebar`` to react to health changes without coupling it " "to the ``Character`` node." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1386 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1402 msgid "" "You can write optional argument names in parentheses after the signal's " "definition::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1392 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1408 msgid "" "These arguments show up in the editor's node dock, and Godot can use them to " "generate callback functions for you. However, you can still emit any number " @@ -14757,7 +14879,7 @@ msgid "" "values." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1398 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1414 msgid "" "GDScript can bind an array of values to connections between a signal and a " "method. When the signal is emitted, the callback method receives the bound " @@ -14765,14 +14887,14 @@ msgid "" "will stay the same." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1403 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1419 msgid "" "You can use this array of values to add extra constant information to the " "connection if the emitted signal itself doesn't give you access to all the " "data that you need." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1407 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1423 msgid "" "Building on the example above, let's say we want to display a log of the " "damage taken by each character on the screen, like ``Player1 took 22 damage." @@ -14781,17 +14903,17 @@ msgid "" "can add the character's name in the binds array argument::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1421 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1437 msgid "" "Our ``BattleLog`` node receives each element in the binds array as an extra " "argument::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1434 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1450 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1436 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1452 msgid "" "GDScript offers support for `coroutines `_ via the :ref:`yield` built-in " @@ -14802,56 +14924,56 @@ msgid "" "becomes invalid. Here is an example::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1473 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1494 msgid "Will print::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1463 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1479 msgid "" "It is also possible to pass values between ``yield()`` and ``resume()``, for " "example::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1484 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1500 msgid "" "Remember to save the new function state, when using multiple ``yield``\\s::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1499 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1515 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1501 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1517 msgid "" "The real strength of using ``yield`` is when combined with signals. " "``yield`` can accept two arguments, an object and a signal. When the signal " "is received, execution will recommence. Here are some examples::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1530 msgid "" "Coroutines themselves use the ``completed`` signal when they transition into " "an invalid state, for example::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1526 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1542 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1528 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1544 msgid "You can also get the signal's argument once it's emitted by an object:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1535 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1551 msgid "" "If you're unsure whether a function may yield or not, or whether it may " "yield multiple times, you can yield to the ``completed`` signal " "conditionally:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1557 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 msgid "" "This ensures that the function returns whatever it was supposed to return " "irregardless of whether coroutines were used internally. Note that using " @@ -14859,11 +14981,11 @@ msgid "" "emitted when the function didn't yield anymore." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1563 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1579 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1565 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1581 msgid "" "When using nodes, it's common to desire to keep references to parts of the " "scene in a variable. As scenes are only warranted to be configured when " @@ -14871,7 +14993,7 @@ msgid "" "call to ``Node._ready()`` is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1578 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1594 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -14879,11 +15001,11 @@ msgid "" "can replace the above code with a single line::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1586 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1602 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1588 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1604 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds. This means that the " @@ -14893,7 +15015,7 @@ msgid "" "depending on whether the project is run in a debug build." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1600 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1616 msgid "" "When running a project from the editor, the project will be paused if an " "assertion error occurs." @@ -15330,53 +15452,53 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:33 #: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:184 #: ../../docs/tutorials/physics/using_area_2d.rst:132 -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:185 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:120 msgid "Examples" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:129 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:136 msgid "" "It must be noted that even if the script is not being run while in the " "editor, the exported properties are still editable. This can be used in " "conjunction with a :ref:`script in \"tool\" mode `." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:134 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:141 msgid "Exporting bit flags" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:136 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:143 msgid "" "Integers used as bit flags can store multiple ``true``/``false`` (boolean) " "values in one property. By using the export hint ``int, FLAGS``, they can be " "set from the editor::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:143 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:150 msgid "" "Restricting the flags to a certain number of named flags is also possible. " "The syntax is similar to the enumeration syntax::" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:149 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:156 msgid "" "In this example, ``Fire`` has value 1, ``Water`` has value 2, ``Earth`` has " "value 4 and ``Wind`` corresponds to value 8. Usually, constants should be " "defined accordingly (e.g. ``const ELEMENT_WIND = 8`` and so on)." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:154 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:161 msgid "" "Using bit flags requires some understanding of bitwise operations. If in " "doubt, boolean variables should be exported instead." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:158 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:165 msgid "Exporting arrays" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:160 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:167 msgid "" "Exporting arrays works, but with an important caveat: while regular arrays " "are created local to every class instance, exported arrays are *shared* " @@ -15385,18 +15507,18 @@ msgid "" "initializers, but they must be constant expressions." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:166 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:173 msgid "" "If the exported array specifies a type which inherits from Resource, the " "array values can be set in the inspector by dragging and dropping multiple " "files from the FileSystem dock at once." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:206 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:213 msgid "Setting exported variables from a tool script" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:208 +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:215 msgid "" "When changing an exported variable's value from a script in :ref:" "`doc_gdscript_tool_mode`, the value in the inspector won't be updated " @@ -15405,6 +15527,92 @@ msgid "" "exported variable's value." msgstr "" +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:222 +msgid "Advanced exports" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:224 +msgid "" +"Not every type of export can be provided on the level of the language itself " +"to avoid unnecessary design complexity. The following describes some more or " +"less common exporting features which can be implemented with a low-level API." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:228 +msgid "" +"Before reading further, you should get familiar with the way properties are " +"handled and how they can be customized with :ref:`_set() " +"`, :ref:`_get() " +"`, and :ref:`_get_property_list() " +"` methods as described in :ref:" +"`doc_accessing_data_or_logic_from_object`." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:235 +msgid "" +"For binding properties using the above methods in C++, see :ref:" +"`doc_binding_properties_using_set_get_property_list`." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:238 +msgid "" +"The script must operate in the ``tool`` mode so the above methods can work " +"from within the editor." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:242 +msgid "Adding script categories" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:244 +msgid "" +"For better visual distinguishing of properties, a special script category " +"can be embedded into the inspector to act as a separator. ``Script " +"Variables`` is one example of a built-in category." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:261 +msgid "``name`` is the name of a category to be added to the inspector;" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:263 +msgid "" +"``PROPERTY_USAGE_CATEGORY`` indicates that the property should be treated as " +"a script category specifically, so the type ``TYPE_NIL`` can be ignored as " +"it won't be actually used for the scripting logic, yet it must be defined " +"anyway." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:268 +msgid "Grouping properties" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:270 +msgid "A list of properties with similar names can be grouped." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:284 +msgid "" +"``name`` is the name of a group which is going to be displayed as " +"collapsible list of properties;" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:287 +msgid "" +"every successive property added after the group property will be collapsed " +"and shortened as determined by the prefix defined via the ``hint_string`` " +"key. For instance, ``rotate_speed`` is going to be shortened to ``speed`` in " +"this case." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:291 +msgid "" +"``PROPERTY_USAGE_GROUP`` indicates that the property should be treated as a " +"script group specifically, so the type ``TYPE_NIL`` can be ignored as it " +"won't be actually used for the scripting logic, yet it must be defined " +"anyway." +msgstr "" + #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:4 msgid "GDScript style guide" msgstr "" @@ -15502,7 +15710,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:327 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:347 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:373 -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:675 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:695 #: ../../docs/tutorials/shading/godot_shader_language_style_guide.rst:65 #: ../../docs/tutorials/shading/godot_shader_language_style_guide.rst:84 #: ../../docs/tutorials/shading/godot_shader_language_style_guide.rst:111 @@ -15524,7 +15732,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:334 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:354 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:383 -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:683 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:703 #: ../../docs/tutorials/shading/godot_shader_language_style_guide.rst:73 #: ../../docs/tutorials/shading/godot_shader_language_style_guide.rst:92 #: ../../docs/tutorials/shading/godot_shader_language_style_guide.rst:121 @@ -15706,70 +15914,87 @@ msgid "" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:431 -msgid "Classes and nodes" +msgid "File names" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:433 -msgid "Use PascalCase for class and node names:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:439 -msgid "Also use PascalCase when loading a class into a constant or a variable:" +msgid "" +"Use snake_case for file names. For named classes, convert the PascalCase " +"class name to snake_case::" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:446 +msgid "" +"This is consistent with how C++ files are named in Godot's source code. This " +"also avoids case sensitivity issues that can crop up when exporting a " +"project from Windows to other platforms." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:451 +msgid "Classes and nodes" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:453 +msgid "Use PascalCase for class and node names:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:459 +msgid "Also use PascalCase when loading a class into a constant or a variable:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:466 #: ../../docs/tutorials/shading/godot_shader_language_style_guide.rst:300 msgid "Functions and variables" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:448 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:468 #: ../../docs/tutorials/shading/godot_shader_language_style_guide.rst:302 msgid "Use snake\\_case to name functions and variables:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:455 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:475 msgid "" "Prepend a single underscore (\\_) to virtual methods functions the user must " "override, private functions, and private variables:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:486 msgid "Use the past tense to name signals:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:474 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:494 msgid "Constants and enums" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:476 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:496 #: ../../docs/tutorials/shading/godot_shader_language_style_guide.rst:313 msgid "" "Write constants with CONSTANT\\_CASE, that is to say in all caps with an " "underscore (\\_) to separate words:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:483 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:503 msgid "" "Use PascalCase for enum *names* and CONSTANT\\_CASE for their members, as " "they are constants:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:497 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:517 #: ../../docs/tutorials/shading/godot_shader_language_style_guide.rst:321 msgid "Code order" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:499 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:519 msgid "" "This first section focuses on code order. For formatting, see :ref:" "`formatting`. For naming conventions, see :ref:`naming_conventions`." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:502 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:522 msgid "We suggest to organize GDScript code this way:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:525 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:545 #: ../../docs/tutorials/shading/godot_shader_language_style_guide.rst:340 msgid "" "We optimized the order to make it easy to read the code from top to bottom, " @@ -15777,79 +16002,79 @@ msgid "" "works, and to avoid errors linked to the order of variable declarations." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:529 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:549 msgid "This code order follows four rules of thumb:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:551 msgid "Properties and signals come first, followed by methods." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:532 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:552 msgid "Public comes before private." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:533 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:553 msgid "Virtual callbacks come before the class's interface." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:554 msgid "" "The object's construction and initialization functions, ``_init`` and " "``_ready``, come before functions that modify the object at runtime." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:539 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:559 msgid "Class declaration" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:541 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:561 msgid "" "If the code is meant to run in the editor, place the ``tool`` keyword on the " "first line of the script." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:544 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:564 msgid "" "Follow with the `class_name` if necessary. You can turn a GDScript file into " "a global type in your project using this feature. For more information, see :" "ref:`doc_gdscript`." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:548 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:568 msgid "Then, add the `extends` keyword if the class extends a built-in type." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:550 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:570 msgid "" "Following that, you should have the class's optional docstring as comments. " "You can use that to explain the role of your class to your teammates, how it " "works, and how other developers should use it, for example." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:562 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:582 msgid "Signals and properties" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:564 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:584 msgid "" "Write signal declarations, followed by properties, that is to say, member " "variables, after the docstring." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:567 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:587 msgid "" "Enums should come after signals, as you can use them as export hints for " "other properties." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:570 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:590 msgid "" "Then, write constants, exported variables, public, private, and onready " "variables, in that order." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:593 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:613 msgid "" "The GDScript compiler evaluates onready variables right before the " "``_ready`` callback. You can use that to cache node dependencies, that is to " @@ -15857,12 +16082,12 @@ msgid "" "the example above shows." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:599 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:619 #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:268 msgid "Member variables" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:601 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:621 #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:270 msgid "" "Don't declare member variables if they are only used locally in a method, as " @@ -15870,13 +16095,13 @@ msgid "" "variables in the method's body." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:606 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:626 #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:275 #: ../../docs/tutorials/shading/godot_shader_language_style_guide.rst:351 msgid "Local variables" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:608 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:628 #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:277 #: ../../docs/tutorials/shading/godot_shader_language_style_guide.rst:353 msgid "" @@ -15885,67 +16110,67 @@ msgid "" "where the variable was declared." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:613 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:633 msgid "Methods and static functions" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:615 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:635 msgid "After the class's properties come the methods." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:617 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:637 msgid "" "Start with the ``_init()`` callback method, that the engine will call upon " "creating the object in memory. Follow with the ``_ready()`` callback, that " "Godot calls when it adds a node to the scene tree." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:621 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:641 msgid "" "These function should come first because they show how the object is " "initialized." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:624 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:644 msgid "" "Other built-in virtual callbacks, like ``_unhandled_input()`` and " "``_physics_process``, should come next. These control the object's main loop " "and interactions with the game engine." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:628 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:648 msgid "" "The rest of the class's interface, public and private methods, come after " "that, in that order." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:665 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:685 msgid "Static typing" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:667 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:687 msgid "" "Since Godot 3.1, GDScript supports :ref:`optional static " "typing`." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:690 msgid "Type hints" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:672 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:692 msgid "" "Place the colon right after the variable's name, without a space, and let " "the GDScript compiler infer the variable's type when possible." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:691 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:711 msgid "" "When you let the compiler infer the type hint, write the colon and equal " "signs together: ``:=``." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:697 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:717 msgid "" "Add a space on either sides of the return type arrow when defining functions." msgstr "" @@ -16015,7 +16240,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/static_typing.rst:55 msgid "" "Static types also give you better code completion options. Below, you can " -"see the difference between a dynamic and a static typed completion options " +"see the difference between a dynamic and a static typed completion options " "for a class called ``PlayerController``." msgstr "" @@ -16254,7 +16479,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/static_typing.rst:302 msgid "" -"You're free to replace, e.g. the ``CollisionObject2D``, with your own type, " +"You're free to replace, e.g. the ``CollisionObject2D``, with your own type, " "to cast parameters automatically:" msgstr "" @@ -16270,34 +16495,91 @@ msgstr "" msgid "Warning system" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:321 +#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:323 msgid "" -"The warning system complements typed GDScript. It's here to help you avoid " -"mistakes that are hard to spot during development, and that may lead to " -"runtime errors." +"Documentation about the GDScript warning system has been moved to :ref:" +"`doc_gdscript_warning_system`." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:325 +#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:327 +msgid "Cases where you can't specify types" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:329 msgid "" -"You can configure warnings in the Project Settings under a new section " -"called ``GDScript``:" +"To wrap up this introduction, let's cover a few cases where you can't use " +"type hints. All the examples below **will trigger errors**." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:331 -msgid "warning system project settings" +#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:332 +msgid "You can't use Enums as types:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:333 +#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:339 +msgid "" +"You can't specify the type of individual members in an array. This will give " +"you an error:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:346 +msgid "" +"You can't force the assignment of types in a ``for`` loop, as each element " +"the ``for`` keyword loops over already has a different type. So you " +"**cannot** write:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:356 +msgid "Two scripts can't depend on each other in a cyclic fashion:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:379 +#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:132 +#: ../../docs/tutorials/2d/2d_movement.rst:347 +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:213 +msgid "Summary" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:381 +msgid "" +"Typed GDScript is a powerful tool. Available as of version 3.1 of Godot, it " +"helps you write more structured code, avoid common errors, and create " +"scalable systems. In the future, static types will also bring you a nice " +"performance boost thanks to upcoming compiler optimizations." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:4 +msgid "GDScript warning system" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:6 +msgid "" +"The GDScript warning system complements :ref:`static typing " +"` (but it can work without static typing too). " +"It's here to help you avoid mistakes that are hard to spot during " +"development, and that may lead to runtime errors." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:11 +msgid "" +"You can configure warnings in the Project Settings under the section called " +"**Gdscript**:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:17 +msgid "Warning system project settings" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:19 msgid "" "You can find a list of warnings for the active GDScript file in the script " "editor's status bar. The example below has 3 warnings:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:339 -msgid "warning system example" +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:25 +msgid "Warning system example" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:341 +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:27 msgid "" "To ignore specific warnings in one file, insert a special comment of the " "form ``# warning-ignore:warning-id``, or click on the ignore link to the " @@ -16306,18 +16588,18 @@ msgid "" "anymore:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:350 -msgid "warning system ignore example" +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:36 +msgid "Warning system ignore example" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:352 +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:38 msgid "" "You can also choose to ignore not just one but all warnings of a certain " "type in this file with ``# warning-ignore-all:warning-id``. To ignore all " "warnings of all types in a file add the comment ``# warnings-disable`` to it." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:356 +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:42 msgid "" "Warnings won't prevent the game from running, but you can turn them into " "errors if you'd like. This way your game won't compile unless you fix all " @@ -16326,54 +16608,8 @@ msgid "" "as errors turned on:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:365 -msgid "warnings as errors" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:368 -msgid "Cases where you can't specify types" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:370 -msgid "" -"To wrap up this introduction, let's cover a few cases where you can't use " -"type hints. All the examples below **will trigger errors**." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:373 -msgid "You can't use Enums as types:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:380 -msgid "" -"You can't specify the type of individual members in an array. This will give " -"you an error:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:387 -msgid "" -"You can't force the assignment of types in a ``for`` loop, as each element " -"the ``for`` keyword loops over already has a different type. So you " -"**cannot** write:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:397 -msgid "Two scripts can't depend on each other in a cyclic fashion:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:420 -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:129 -#: ../../docs/tutorials/2d/2d_movement.rst:347 -#: ../../docs/tutorials/2d/2d_sprite_animation.rst:213 -msgid "Summary" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:422 -msgid "" -"Typed GDScript is a powerful tool. Available as of version 3.1 of Godot, it " -"helps you write more structured code, avoid common errors, and create " -"scalable systems. In the future, static types will also bring you a nice " -"performance boost thanks to upcoming compiler optimizations." +#: ../../docs/getting_started/scripting/gdscript/warning_system.rst:51 +msgid "Warnings as errors" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:4 @@ -17764,8 +18000,8 @@ msgstr "" #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:498 msgid "" "Use most of the existing built-in functions that are available to GDScript, " -"such as sin(),cos(),print(), as well as constructors, such as Vector3(x,y,z)," -"Rect2(..), etc.:" +"such as ``sin()``, ``cos()``, ``print()``, as well as constructors, such as " +"``Vector3(x, y, z)``, ``Rect2(...)``, etc.:" msgstr "" #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:503 @@ -19880,6 +20116,41 @@ msgid "" "which can be useful to reduce clutter." msgstr "" +#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:77 +msgid "Case sensitivity" +msgstr "" + +#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:79 +msgid "" +"Windows and recent macOS versions use case-insensitive filesystems by " +"default, whereas Linux distributions use a case-sensitive filesystem by " +"default. This can cause issues after exporting a project, since Godot's PCK " +"virtual filesystem is case-sensitive. To avoid this, it's recommended to " +"stick to ``snake_case`` naming for all files in the project (and lowercase " +"characters in general)." +msgstr "" + +#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:88 +msgid "" +"You can break this rule when style guides say otherwise (such as the C# " +"style guide). Still, be consistent to avoid mistakes." +msgstr "" + +#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:91 +msgid "" +"On Windows 10, to further avoid mistakes related to case sensitivity, you " +"can also make the project folder case-sensitive. After enabling the Windows " +"Subsystem for Linux feature, run the following command in a PowerShell " +"window::" +msgstr "" + +#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:101 +msgid "" +"If you haven't enabled the Windows Subsystem for Linux, you can enter the " +"following line in a PowerShell window *running as Administrator* then reboot " +"when asked::" +msgstr "" + #: ../../docs/getting_started/workflow/assets/escn_exporter/index.rst:2 msgid "Blender ESCN exporter" msgstr "" @@ -22619,22 +22890,29 @@ msgstr "" #: ../../docs/getting_started/workflow/export/exporting_pcks.rst:117 msgid "" -"If you import a file with the same file path/name as one you already have in " -"your project, the imported one will replace it. This is something to watch " -"out for when creating DLC or mods (solved easily with a tool isolating mods " -"to a specific mods subfolder). However, it is also a way of creating patches " -"for one's own game. A PCK file of this kind can fix the content of a " -"previously loaded PCK." +"By default, if you import a file with the same file path/name as one you " +"already have in your project, the imported one will replace it. This is " +"something to watch out for when creating DLC or mods (solved easily with a " +"tool isolating mods to a specific mods subfolder). However, it is also a way " +"of creating patches for one's own game. A PCK file of this kind can fix the " +"content of a previously loaded PCK." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:124 +#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:123 +msgid "" +"To opt out of this behavior, pass ``false`` as the second argument to :ref:" +"`ProjectSettings.load_resource_pack() " +"`." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:127 msgid "" "For a C# project, you need to build the DLL and place it in the project " "directory first. Then, before loading the resource pack, you need to load " "its DLL as follows: ``Assembly.LoadFile(\"mod.dll\")``" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:131 +#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:134 msgid "" "This tutorial should illustrate how easy adding mods, patches or DLC to a " "game is. The most important thing is to identify how one plans to distribute " @@ -23496,8 +23774,8 @@ msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_android.rst:84 msgid "" "The most important adaptive icon design rule is to have your icon critical " -"elements inside the safe zone: a centered circle with a radius of 66dp (264 " -"pixels on ``xxxhdpi``) to avoid being clipped by the launcher." +"elements inside the safe zone: a centered circle with a diameter of 66dp " +"(264 pixels on ``xxxhdpi``) to avoid being clipped by the launcher." msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_android.rst:86 @@ -23990,6 +24268,143 @@ msgid "" "defaulting to ``false`` to prevent polluting the global namespace::" msgstr "" +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:4 +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:425 +msgid "Exporting for dedicated servers" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:6 +msgid "" +"If you want to run a dedicated server for your project on a machine that " +"doesn't have a GPU or display server available, you'll need to use a server " +"build of Godot." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:10 +msgid "Platform support" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:12 +msgid "" +"**Linux:** `Download an official Linux server binary `__. To compile a server binary from source, follow " +"instructions in :ref:`doc_compiling_for_linuxbsd`." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:15 +msgid "" +"**macOS:** :ref:`Compile a server binary from source for macOS " +"`." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:16 +msgid "" +"**Windows:** There is no dedicated server build for Windows yet. As an " +"alternative, you can use the ``--no-window`` command-line argument to " +"prevent Godot from spawning a window." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:20 +msgid "" +"If your project uses C#, you'll have to use a Mono-enabled server binary." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:23 +msgid "\"Headless\" versus \"server\" binaries" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:25 +msgid "" +"The `server download page `__ " +"offers two kinds of binaries with several differences." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:28 +msgid "" +"**Server:** Use this one for running dedicated servers. It does not contain " +"editor functionality, and is therefore smaller and more optimized." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:31 +msgid "" +"**Headless:** This binary contains editor functionality and is intended to " +"be used for exporting projects. This binary *can* be used to run dedicated " +"servers, but it's not recommended as it's larger and less optimized." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:36 +msgid "Exporting a PCK file" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:38 +msgid "" +"Once you've downloaded a server binary, you should export a PCK file " +"containing your project data. It's recommended to create a Linux export " +"preset for this purpose. After creating the export preset, click **Export " +"PCK/ZIP** at the bottom of the Export dialog then choose a destination path." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:43 +msgid "" +"The **Export With Debug** checkbox in the file dialog has no bearing on the " +"final PCK file, so you can leave it as-is." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:46 +msgid "See :ref:`doc_exporting_projects` for more information." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:50 +msgid "" +"The PCK file will include resources not normally needed by the server, such " +"as textures and sounds. This means the PCK file will be larger than it could " +"possibly be. Support for stripping unneeded resources from a PCK for server " +"usage is planned in a future Godot release." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:55 +msgid "" +"On the bright side, this allows the same PCK file to be used both by a " +"client and dedicated server build. This can be useful if you want to ship a " +"single archive that can be used both as a client and dedicated server." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:60 +msgid "Preparing the server distribution" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:62 +msgid "" +"After downloading or compiling a server binary, you should now place it in " +"the same folder as the PCK file you've exported. The server binary should " +"have the same name as the PCK (excluding the extension). This lets Godot " +"detect and use the PCK file automatically. If you want to start a server " +"with a PCK that has a different name, you can specify the path to the PCK " +"file using the ``--main-pack`` command-line argument::" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:72 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:849 +msgid "Next steps" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:74 +msgid "" +"On Linux, to make your dedicated server restart after a crash or system " +"reboot, you can `create a systemd service `__. This also lets you " +"view server logs in a more convenient fashion, with automatic log rotation " +"provided by systemd." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_dedicated_servers.rst:80 +msgid "" +"If you have experience with containers, you could also look into wrapping " +"your dedicated server in a `Docker `__ container. " +"This way, it can be used more easily in an automatic scaling setup (which is " +"outside the scope of this tutorial)." +msgstr "" + #: ../../docs/getting_started/workflow/export/one-click_deploy.rst:4 msgid "One-click deploy" msgstr "" @@ -24148,19 +24563,19 @@ msgid "" "are listed under *Download Options*. Scroll down a bit until you see them." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:70 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:68 msgid "" "Download the ZIP file for your platform, there will be a single ``tools`` " "folder inside:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:75 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:73 msgid "" "This may appear a little confusing, but be sure to follow these instructions " "carefully:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:78 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:76 msgid "" "Create a new folder anywhere you want named ``android-sdk`` (it **must** be " "an empty directory). On Windows, the following path is usually good enough:" @@ -24168,22 +24583,37 @@ msgstr "" #: ../../docs/getting_started/workflow/export/android_custom_build.rst:85 msgid "" -"Unzip the Android SDK ZIP file you just downloaded there. The only thing in " -"the directory you created in the previous step should be the ``tools`` " -"folder with its contents inside, like this:" +"If you already have an android-sdk folder, normally located in ``" +"%LOCALAPPDATA%\\Android\\Sdk``, then use this folder instead of creating an " +"empty ``android-sdk`` folder." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:97 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:88 +msgid "" +"Unzip the Android SDK ZIP file into the ``android-sdk`` folder. This folder " +"should now contain the unzipped folder called ``tools``. Rename ``tools`` to " +"``latest``. Finally, create an empty folder named ``cmdline-tools`` and " +"place ``latest`` into it. Your final directory structure should look like " +"this :" +msgstr "" + +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:100 +msgid "" +"We need to setup the directory structure this way for the sdkmanager (inside " +"the bin folder) to work." +msgstr "" + +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:103 msgid "Accepting the licenses" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:99 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:105 msgid "" "To be able to use the Android SDK tools, Google requires you to accept its " "licenses." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:102 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:108 msgid "" "To do this, the ``sdkmanager`` must be executed from the command line with a " "special argument. Navigate to the ``tools/bin`` directory inside the SDK " @@ -24191,97 +24621,105 @@ msgid "" "are expected to understand how command line navigation works):" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:109 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:115 msgid "Then open a command line window:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:113 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:119 msgid "In there, run ``sdkmanager --licenses``:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:117 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:123 msgid "" "This will ask you to accept several licenses, just write ``y`` and press :" "kbd:`Enter` on every of them until it's done." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:120 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:126 msgid "" "Afterwards, install the platform tools (this is required to install ``adb``):" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:126 -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:210 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:130 +msgid "" +"If you get an error saying ``Warning: Could not create settings``, try ``./" +"sdkmanager --sdk_root=../../ --licenses`` or ``./sdkmanager --" +"sdk_root=../../ platform-tools``. These must be executed inside the ``/tools/" +"bin/`` folder because the path for ``--sdk_root`` is relative." +msgstr "" + +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:133 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:217 msgid "Generating the keystore" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:128 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:135 msgid "" "Once the *platform tools* are installed, the last step is to generate a " "debug keystore (this is needed to build). Go up two folders by writing:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:135 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:142 msgid "(or open a new shell in the ``android-sdk`` folder)." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:137 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:144 msgid "" "And you need to input the following line (on Linux and macOS, this should " "work out of the box, for Windows there are further instructions below):" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:144 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:151 msgid "" "On Windows, the full path to Java should be provided. You need to add ``&`` " "at the beginning of the line if you use PowerShell; it's not needed for the " "regular ``cmd.exe`` console." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:148 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:155 msgid "" "To make it clearer, here is an capture of a line that works on PowerShell " "(by adding ``&`` and the full Java path before ``keytool.exe``). Again, keep " "in mind that you need Java installed:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:154 -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:165 -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:237 -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:248 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:161 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:172 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:244 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:255 msgid "(right-click and open the image in a new tab if this appears too small)" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:158 -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:241 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:165 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:248 msgid "Setting up Godot" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:160 -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:243 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:167 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:250 msgid "" "Go to the **Editor Settings** and set up a few fields in **Export > " "Android**. Make sure they look like the following:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:167 -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:250 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:174 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:257 msgid "" "As it can be seen, most paths are inside either the ``android-sdk`` folder " "you originally created, or inside the Java install. For Linux and macOS " "users, ``jarsigner`` is often located in ``/usr/bin``." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:171 -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:254 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:178 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:261 msgid "With this, you should be all set." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:175 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:182 msgid "Install the Android SDK (Android Studio)" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:177 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:184 msgid "" "If you just finished installing the SDK via the command-line tools, feel " "free to skip this section entirely. The Android Studio path is easier, but " @@ -24289,62 +24727,62 @@ msgid "" "for Android (modify the Java source code) or if you plan to develop add-ons." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:183 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:190 msgid "Download and install Android Studio" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:185 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:192 msgid "" "Download the latest version of Android Studio. When installing, pay " "attention to where the *android-sdk* directory is created." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:190 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:197 msgid "" "This is funny, the path it proposes by default contains whitespace (and " "complains about it). It must be changed." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:192 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:199 msgid "" "In any case, it's better to select a different path inside your user " "folders. The recommended one is usually:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:199 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:206 msgid "" "Replace *yourusername* by your actual user name. Once it's correct, select " "from the list above in the same screen:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:202 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:209 msgid "Android SDK" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:203 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:210 msgid "Android SDK Platform" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:205 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:212 msgid "" "The rest are not needed, because the build system will fetch them itself. " "After selecting them, go on with the installation." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:212 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:219 msgid "" "Go to the folder where you installed ``android-sdk`` in the previous step, " "use File Explorer and open a command line tool there:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:217 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:224 msgid "" "The actual command line to type is the following. On Linux and macOS, it " "should work out of the box, but on Windows, it needs additional details " "(keep reading afterwards)." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:225 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:232 msgid "" "On Windows, the full path to Java should be provided (and ``&`` needs to be " "added at the beginning on the line if you use PowerShell, it's not needed " @@ -24352,7 +24790,7 @@ msgid "" "Studio on Windows, Java comes bundled with it." msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:230 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:237 msgid "" "To make it clearer, here is a screen capture of a line that works on " "PowerShell (by adding ``&`` and the full Java Path to ``keytool.exe``; " @@ -24360,24 +24798,24 @@ msgid "" "that comes with Android Studio:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:258 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:265 msgid "Enabling the custom build and exporting" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:260 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:267 msgid "" "When setting up the Android project in the **Project > Export** dialog, " "**Custom Build** needs to be enabled:" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:265 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:272 msgid "" "From now on, attempting to export the project or one-click deploy will call " "the `Gradle `__ build system to generate fresh " "templates (this window will appear every time):" msgstr "" -#: ../../docs/getting_started/workflow/export/android_custom_build.rst:271 +#: ../../docs/getting_started/workflow/export/android_custom_build.rst:278 msgid "" "The templates built will be used automatically afterwards, so no further " "configuration is needed." @@ -25785,11 +26223,11 @@ msgstr "" msgid "Nodes likewise have an alternative access point: the SceneTree." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:242 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:244 msgid "Accessing data or logic from an object" msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:244 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:246 msgid "" "Godot's scripting API is duck-typed. This means that if a script executes an " "operation, Godot doesn't validate that it supports the operation by " @@ -25797,7 +26235,7 @@ msgid "" "method." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:248 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:250 msgid "" "For example, the :ref:`CanvasItem ` class has a " "``visible`` property. All properties exposed to the scripting API are in " @@ -25806,7 +26244,7 @@ msgid "" "do the following checks, in order:" msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:254 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:256 msgid "" "If the object has a script attached, it will attempt to set the property " "through the script. This leaves open the opportunity for scripts to override " @@ -25814,7 +26252,7 @@ msgid "" "property." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:259 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:261 msgid "" "If the script does not have the property, it performs a HashMap lookup in " "the ClassDB for the \"visible\" property against the CanvasItem class and " @@ -25823,13 +26261,13 @@ msgid "" "` docs." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:265 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:267 msgid "" "If not found, it does an explicit check to see if the user wants to access " "the \"script\" or \"meta\" properties." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:268 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:270 msgid "" "If not, it checks for a ``_set``/``_get`` implementation (depending on type " "of access) in the CanvasItem and its inherited types. These methods can " @@ -25837,7 +26275,7 @@ msgid "" "is also the case with the ``_get_property_list`` method." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:273 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:275 msgid "" "Note that this happens even for non-legal symbol names such as in the case " "of :ref:`TileSet `'s \"1/tile_name\" property. This refers to " @@ -25845,40 +26283,40 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:278 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:280 msgid "" "As a result, this duck-typed system can locate a property either in the " "script, the object's class, or any class that object inherits, but only for " "things which extend Object." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:282 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:284 msgid "" "Godot provides a variety of options for performing runtime checks on these " "accesses:" msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:285 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:287 msgid "" "A duck-typed property access. These will property check (as described " "above). If the operation isn't supported by the object, execution will halt." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:313 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:315 msgid "" "A method check. In the case of :ref:`CanvasItem.visible " "`, one can access the methods, " "``set_visible`` and ``is_visible`` like any other method." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:445 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:447 msgid "" "Outsource the access to a :ref:`FuncRef `. These may be " "useful in cases where one needs the max level of freedom from dependencies. " "In this case, one relies on an external context to setup the method." msgstr "" -#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:504 +#: ../../docs/getting_started/workflow/best_practices/godot_interfaces.rst:506 msgid "" "These strategies contribute to Godot's flexible design. Between them, users " "have a breadth of tools to meet their specific needs." @@ -26683,7 +27121,7 @@ msgstr "" msgid "" "Its counterpart, the :ref:`load ` method, loads " "a resource only when it reaches the load statement. That is, it will load a " -"resource in-place which can cause slowdowns then it occurs in the middle of " +"resource in-place which can cause slowdowns when it occurs in the middle of " "sensitive processes. The ``load`` function is also an alias for :ref:" "`ResourceLoader.load(path) ` which is " "accessible to *all* scripting languages." @@ -27119,7 +27557,7 @@ msgstr "" msgid "" "A tilemap is a grid of tiles used to create a game's layout. There are " "several benefits to using :ref:`TileMap ` nodes to design " -"your levels. First, they make it possible to draw the layout by \"painting' " +"your levels. First, they make it possible to draw the layout by \"painting\" " "the tiles onto a grid, which is much faster than placing individual :ref:" "`Sprite ` nodes one by one. Second, they allow for much larger " "levels because they are optimized for drawing large numbers of tiles. " @@ -27856,7 +28294,7 @@ msgstr "" #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:12 #: ../../docs/tutorials/platform/customizing_html5_shell.rst:32 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 -#: ../../docs/development/cpp/configuring_an_ide.rst:276 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:12 msgid "Setup" msgstr "" @@ -29107,9 +29545,9 @@ msgstr "" msgid "" "Spatial nodes have a local transform, which is relative to the parent node " "(as long as the parent node is also of **or inherits from** the type " -"Spatial). This transform can be accessed as a 4x3 :ref:`Transform " +"Spatial). This transform can be accessed as a 4×3 :ref:`Transform " "`, or as 3 :ref:`Vector3 ` members " -"representing location, Euler rotation (x,y and z angles) and scale." +"representing location, Euler rotation (X, Y and Z angles) and scale." msgstr "" #: ../../docs/tutorials/3d/introduction_to_3d.rst:39 @@ -29280,9 +29718,10 @@ msgstr "" #: ../../docs/tutorials/3d/introduction_to_3d.rst:152 msgid "" "Moving objects in the 3D view is done through the manipulator gizmos. Each " -"axis is represented by a color: Red, Green, Blue represent X,Y,Z " +"axis is represented by a color: Red, Green, Blue represent X, Y, Z " "respectively. This convention applies to the grid and other gizmos too (and " -"also to the shader language, ordering of components for Vector3,Color,etc.)." +"also to the shader language, ordering of components for Vector3, Color, " +"etc.)." msgstr "" #: ../../docs/tutorials/3d/introduction_to_3d.rst:160 @@ -29461,7 +29900,7 @@ msgstr "" #: ../../docs/tutorials/3d/using_transforms.rst:43 msgid "" -"Following is a visualization of rotation axes (in X,Y,Z order) in a gimbal " +"Following is a visualization of rotation axes (in X, Y, Z order) in a gimbal " "(from Wikipedia). As you can see, the orientation of each axis depends on " "the rotation of the previous one:" msgstr "" @@ -29808,18 +30247,22 @@ msgid "" "confident enough, please help others!" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:4 -msgid "3D performance and limitations" +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:1 +msgid "optimization" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:9 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:7 +msgid "Optimizing 3D performance" +msgstr "" + +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:12 msgid "" "Godot follows a balanced performance philosophy. In the performance world, " "there are always trade-offs, which consist of trading speed for usability " "and flexibility. Some practical examples of this are:" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:13 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:16 msgid "" "Rendering objects efficiently in high amounts is easy, but when a large " "scene must be rendered, it can become inefficient. To solve this, visibility " @@ -29828,14 +30271,14 @@ msgid "" "overall improves." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:18 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:21 msgid "" "Configuring the properties of every material for every object that needs to " "be rendered is also slow. To solve this, objects are sorted by material to " "reduce the costs, but at the same time sorting has a cost." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:22 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:25 msgid "" "In 3D physics a similar situation happens. The best algorithms to handle " "large amounts of physics objects (such as SAP) are slow at insertion/removal " @@ -29844,7 +30287,7 @@ msgid "" "objects." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:28 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:31 msgid "" "And there are many more examples of this! Game engines strive to be general " "purpose in nature, so balanced algorithms are always favored over algorithms " @@ -29852,7 +30295,7 @@ msgid "" "that are fast but make usability more difficult." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:33 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:36 msgid "" "Godot is not an exception and, while it is designed to have backends " "swappable for different algorithms, the default ones (or more like, the only " @@ -29860,28 +30303,28 @@ msgid "" "performance." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:38 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:41 msgid "" "With this clear, the aim of this tutorial is to explain how to get the " "maximum performance out of Godot." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:42 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:45 #: ../../docs/tutorials/viewports/viewports.rst:174 msgid "Rendering" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:44 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:47 msgid "" "3D rendering is one of the most difficult areas to get performance from, so " "this section will have a list of tips." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:48 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:51 msgid "Reuse shaders and materials" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:50 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:53 msgid "" "The Godot renderer is a little different to what is out there. It's designed " "to minimize GPU state changes as much as possible. :ref:" @@ -29890,7 +30333,7 @@ msgid "" "much as possible. Godot's priorities will be like this:" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:57 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:60 msgid "" "**Reusing Materials**: The fewer different materials in the scene, the " "faster the rendering will be. If a scene has a huge amount of objects (in " @@ -29898,46 +30341,46 @@ msgid "" "use atlases." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:61 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:64 msgid "" "**Reusing Shaders**: If materials can't be reused, at least try to re-use " "shaders (or SpatialMaterials with different parameters but the same " "configuration)." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:65 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:68 msgid "" "If a scene has, for example, 20.000 objects with 20.000 different materials " "each, rendering will be slow. If the same scene has 20.000 objects, but only " "uses 100 materials, rendering will be blazingly fast." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:71 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:74 msgid "Pixel cost vs vertex cost" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:73 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:76 msgid "" "It is a common thought that the lower the number of polygons in a model, the " "faster it will be rendered. This is *really* relative and depends on many " "factors." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:77 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:80 msgid "" "On a modern PC and console, vertex cost is low. GPUs originally only " "rendered triangles, so all the vertices:" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:80 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:83 msgid "Had to be transformed by the CPU (including clipping)." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:82 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:85 msgid "Had to be sent to the GPU memory from the main RAM." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:84 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:87 msgid "" "Nowadays, all this is handled inside the GPU, so the performance is " "extremely high. 3D artists usually have the wrong feeling about polycount " @@ -29947,7 +30390,7 @@ msgid "" "than how 3D DCCs display them." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:91 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:94 msgid "" "On mobile devices, the story is different. PC and Console GPUs are brute-" "force monsters that can pull as much electricity as they need from the power " @@ -29955,7 +30398,7 @@ msgid "" "more power efficient." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:96 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:99 msgid "" "To be more efficient, mobile GPUs attempt to avoid *overdraw*. This means, " "the same pixel on the screen being rendered (as in, with lighting " @@ -29967,7 +30410,7 @@ msgid "" "performance (but this also increases power consumption)." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:106 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:109 msgid "" "On mobile, pulling more power is not an option, so a technique called \"Tile " "Based Rendering\" is used (almost every mobile hardware uses a variant of " @@ -29978,7 +30421,7 @@ msgid "" "processed for drawing." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:114 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:117 msgid "" "Generally, this is not so bad, but there is a corner case on mobile that " "must be avoided, which is to have small objects with a lot of geometry " @@ -29988,7 +30431,7 @@ msgid "" "frame)." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:121 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:124 msgid "" "To make it short, do not worry about vertex count so much on mobile, but " "avoid concentration of vertices in small parts of the screen. If, for " @@ -29996,43 +30439,43 @@ msgid "" "a smaller level of detail (LOD) model instead." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:126 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:129 msgid "" "An extra situation where vertex cost must be considered is objects that have " "extra processing per vertex, such as:" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:129 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:132 msgid "Skinning (skeletal animation)" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:130 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:133 msgid "Morphs (shape keys)" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:131 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:134 msgid "Vertex Lit Objects (common on mobile)" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:134 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:137 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:108 msgid "Texture compression" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:136 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:139 msgid "" "Godot offers to compress textures of 3D models when imported (VRAM " "compression). Video RAM compression is not as efficient in size as PNG or " "JPG when stored, but increases performance enormously when drawing." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:140 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:143 msgid "" "This is because the main goal of texture compression is bandwidth reduction " "between memory and the GPU." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:143 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:146 msgid "" "In 3D, the shapes of objects depend more on the geometry than the texture, " "so compression is generally not noticeable. In 2D, compression depends more " @@ -30040,17 +30483,17 @@ msgid "" "compression are more noticeable." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:148 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:151 msgid "" "As a warning, most Android devices do not support texture compression of " "textures with transparency (only opaque), so keep this in mind." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:152 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:155 msgid "Transparent objects" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:154 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:157 msgid "" "As mentioned before, Godot sorts objects by material and shader to improve " "performance. This, however, can not be done on transparent objects. " @@ -30060,11 +30503,11 @@ msgid "" "that section a separate material." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:162 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:165 msgid "Level of detail (LOD)" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:164 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:167 msgid "" "As also mentioned before, using objects with fewer vertices can improve " "performance in some cases. Godot has a simple system to change level of " @@ -30073,11 +30516,11 @@ msgid "" "objects in different ranges works as LOD." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:172 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:175 msgid "Use instancing (MultiMesh)" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:174 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:177 msgid "" "If several identical objects have to be drawn in the same place or nearby, " "try using :ref:`MultiMesh ` instead. MultiMesh allows the " @@ -30085,11 +30528,11 @@ msgid "" "making it ideal for flocks, grass, particles, etc." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:181 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:184 msgid "Bake lighting" msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:183 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:186 msgid "" "Small lights are usually not a performance issue. Shadows a little more. In " "general, if several lights need to affect a scene, it's ideal to bake it (:" @@ -30097,12 +30540,216 @@ msgid "" "adding indirect light bounces." msgstr "" -#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:188 +#: ../../docs/tutorials/3d/optimizing_3d_performance.rst:191 msgid "" "If working on mobile, baking to texture is recommended, since this method is " "even faster." msgstr "" +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:4 +msgid "3D rendering limitations" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:9 +msgid "" +"Due to their focus on performance, real-time rendering engines have many " +"limitations. Godot's renderer is no exception. To work effectively with " +"those limitations, you need to understand them." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:14 +msgid "Texture size limits" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:16 +msgid "" +"On desktops and laptops, textures larger than 8192×8192 may not be supported " +"on older devices. You can check your target GPU's limitations on `GPUinfo." +"org `__." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:20 +msgid "" +"Mobile GPUs are typically limited to 4096×4096 textures. Also, some mobile " +"GPUs don't support repeating non-power-of-two-sized textures. Therefore, if " +"you want your texture to display correctly on all platforms, you should " +"avoid using textures larger than 4096×4096 and use a power of two size if " +"the texture needs to repeat." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:27 +msgid "Color banding" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:29 +msgid "" +"When using the GLES3 or Vulkan renderers, Godot's 3D engine renders " +"internally in HDR. However, the rendering output will be tonemapped to a low " +"dynamic range so it can be displayed on the screen. This can result in " +"visible banding, especially when using untextured materials. This can also " +"be seen in 2D projects when using smooth gradient textures." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:35 +msgid "There are several ways to alleviate banding. Here are a few examples:" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:37 +msgid "" +"Bake some noise into your textures. This is mainly effective in 2D, e.g. for " +"vignetting effects." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:39 +msgid "" +"Implement a debanding shader as a :ref:`screen-reading shader `. Godot currently doesn't provide a built-in debanding " +"shader, but this may be added in a future release." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:45 +msgid "" +"See `Banding in Games: A Noisy Rant `__ for more details about banding and ways to combat it." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:49 +msgid "Depth buffer precision" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:51 +msgid "" +"To sort objects in 3D space, rendering engines rely on a *depth buffer* " +"(also called *Z-buffer*). This buffer has a finite precision: 24-bit on " +"desktop platforms, sometimes 16-bit on mobile platforms (for performance " +"reasons). If two different objects end up on the same buffer value, then Z-" +"fighting will occur. This will materialize as textures flickering back and " +"forth as the camera moves or rotates." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:58 +msgid "" +"To make the depth buffer more precise over the rendered area, you should " +"*increase* the Camera node's **Near** property. However, be careful: if you " +"set it too high, players will be able to see through nearby geometry. You " +"should also *decrease* the Camera node's **Far** property to the lowest " +"permissible value for your use case, though keep in mind it won't impact " +"precision as much as the **Near** property." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:65 +msgid "" +"If you only need high precision when the player can see far away, you could " +"change it dynamically based on the game conditions. For instance, if the " +"player enters an airplane, the **Near** property can be temporarily " +"increased to avoid Z-fighting in the distance. It can then be decreased once " +"the player leaves the airplane." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:71 +msgid "" +"Depending on the scene and viewing conditions, you may also be able to move " +"the Z-fighting objects further apart without the difference being visible to " +"the player." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:76 +msgid "Transparency sorting" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:78 +msgid "" +"In Godot, transparent materials are drawn after opaque materials. " +"Transparent objects are sorted back to front before being drawn based on the " +"Node3D's position, not the vertex position in world space. Due to this, " +"overlapping objects may often be sorted out of order. To fix improperly " +"sorted objects, tweak the material's :ref:`Render Priority " +"` property. This will force " +"specific materials to appear in front or behind of other transparent " +"materials. Even then, this may not always be sufficient." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:86 +msgid "" +"Some rendering engines feature *order-independent transparency* techniques " +"to alleviate this, but this is costly on the GPU. Godot currently doesn't " +"provide this feature. There are still several ways to avoid this problem:" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:90 +msgid "" +"Only make materials transparent if you actually need it. If a material only " +"has a small transparent part, consider splitting it into a separate " +"material. This will allow the opaque part to cast shadows and may also " +"improve performance." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:95 +msgid "" +"If you want a material to fade with distance, use the SpatialMaterial " +"distance fade mode **Pixel Dither** or **Object Dither** instead of " +"**PixelAlpha**. This will make the material opaque. This way, it can also " +"cast shadows." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:101 +msgid "Multi-sample antialiasing" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:103 +msgid "" +"Multi-sample antialiasing (MSAA) takes multiple *coverage* samples at the " +"edges of polygons when rendering objects. It does not increase the number of " +"*color* samples used to render a scene. Here's what this means in practice:" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:107 +msgid "" +"Edges of meshes will be smoothed out nicely (as well as supersampling would)." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:108 +msgid "" +"Transparent materials that use *alpha testing* (1-bit transparency) won't be " +"smoothed out." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:109 +msgid "" +"Specular aliasing (\"sparkles\" that appear on reflective surfaces) won't be " +"reduced." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:111 +msgid "" +"There are several ways to work around this limitation depending on your " +"performance budget:" +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:113 +msgid "" +"To make specular aliasing less noticeable, open the Project Settings and " +"enable **Rendering > Quality > Screen Space Filters > Screen Space Roughness " +"Limiter**. This filter has a moderate cost on performance. It should be " +"enabled only if you actually need it." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:118 +msgid "" +"Enable FXAA in addition to (or instead of) MSAA. Since FXAA is a screen-" +"space antialiasing method, it will smooth out anything. As a downside, it " +"will also make the scene appear blurrier, especially at resolutions below " +"1440p." +msgstr "" + +#: ../../docs/tutorials/3d/3d_rendering_limitations.rst:122 +msgid "" +"Render the scene at a higher resolution, then display it in a " +"ViewportTexture that matches the window size. Make sure to enable **Filter** " +"on the ViewportTexture flags. This technique is called *supersampling* and " +"is very slow. Its use is generally only recommended for offline rendering." +msgstr "" + #: ../../docs/tutorials/3d/spatial_material.rst:4 msgid "Spatial Material" msgstr "" @@ -33381,7 +34028,7 @@ msgstr "" #: ../../docs/tutorials/3d/csg_tools.rst:62 msgid "" "The :ref:`CSGPolygon ` node extrude along a Polygon drawn " -"in 2D (in X,Y coordinates) in the following ways:" +"in 2D (in X, Y coordinates) in the following ways:" msgstr "" #: ../../docs/tutorials/3d/csg_tools.rst:65 @@ -34045,7 +34692,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:247 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:242 msgid "" "If you do this, all the code copied will be using spaces instead of tabs." msgstr "" @@ -34732,7 +35379,7 @@ msgstr "" #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 #: ../../docs/tutorials/3d/fps_tutorial/part_five.rst:951 #: ../../docs/tutorials/3d/fps_tutorial/part_six.rst:996 -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1142 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1137 #: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_two.rst:1025 msgid "Final notes" msgstr "" @@ -42819,7 +43466,7 @@ msgid "" "the ground (including slopes) and jump when standing on the ground:" msgstr "" -#: ../../docs/tutorials/physics/physics_introduction.rst:451 +#: ../../docs/tutorials/physics/physics_introduction.rst:453 msgid "" "See :ref:`doc_kinematic_character_2d` for more details on using " "``move_and_slide()``, including a demo project with detailed code." @@ -43244,7 +43891,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:73 -msgid "``floor_normal`` - *default value:* ``Vector2( 0, 0 )``" +msgid "``up_direction`` - *default value:* ``Vector2( 0, 0 )``" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:75 @@ -43257,79 +43904,90 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:80 -msgid "``slope_stop_min_velocity`` - *default value:* ``5``" +msgid "``stop_on_slope`` - *default value:* ``false``" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:82 msgid "" -"This parameter is the minimum velocity required to move when standing on a " -"slope. It prevents a body from sliding down when standing still." +"This parameter prevents a body from sliding down slopes when standing still." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:85 -msgid "``max_bounces`` - *default value:* ``4``" +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:84 +msgid "``max_slides`` - *default value:* ``4``" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:87 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:86 msgid "" "This parameter is the maximum number of collisions before the body stops " "moving. Setting it too low may prevent movement entirely." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:90 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:89 msgid "" "``floor_max_angle`` - *default value:* ``0.785398`` (in radians, equivalent " "to ``45`` degrees)" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:92 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:91 msgid "" "This parameter is the maximum angle before a surface is no longer considered " "a \"floor.\"" msgstr "" +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:93 +msgid "``infinite_inertia`` - *default value:* ``true``" +msgstr "" + #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:95 +msgid "" +"When this parameter is ``true``, the body can push :ref:`RigidBody2D " +"` nodes, ignoring their mass, but won't detect collisions " +"with them. If it's ``false`` the body will collide with rigid bodies and " +"stop." +msgstr "" + +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:100 msgid "``move_and_slide_with_snap``" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:97 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:102 msgid "" "This method adds some additional functionality to ``move_and_slide()`` by " "adding the ``snap`` parameter. As long as this vector is in contact with the " "ground, the body will remain attached to the surface. Note that this means " "you must disable snapping when jumping, for example. You can do this either " -"by setting ``snap`` to ``Vector2(0, 0)`` or by using ``move_and_slide()`` " +"by setting ``snap`` to ``Vector2.ZERO`` or by using ``move_and_slide()`` " "instead." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:105 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:110 msgid "Detecting collisions" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:107 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:112 msgid "" "When using ``move_and_collide()`` the function returns a " "``KinematicCollision2D`` directly, and you can use this in your code." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:110 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:115 msgid "" "When using ``move_and_slide()`` it's possible to have multiple collisions " "occur, as the slide response is calculated. To process these collisions, use " "``get_slide_count()`` and ``get_slide_collision()``:" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:128 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:133 msgid "" "See :ref:`KinematicCollision2D ` for details on " "what collision data is returned." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:132 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:137 msgid "Which movement method to use?" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:134 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:139 msgid "" "A common question from new Godot users is: \"How do you decide which " "movement function to use?\" Often, the response is to use " @@ -43339,7 +43997,7 @@ msgid "" "two code snippets result in the same collision response:" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:165 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:170 msgid "" "Anything you do with ``move_and_slide()`` can also be done with " "``move_and_collide()``, but it might take a little more code. However, as " @@ -43347,7 +44005,7 @@ msgid "" "doesn't provide the response you want." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:169 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:174 msgid "" "In the example above, we assign the velocity that ``move_and_slide()`` " "returns back into the ``velocity`` variable. This is because when the " @@ -43355,14 +44013,14 @@ msgid "" "internally to reflect the slowdown." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:174 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:179 msgid "" "For example, if your character fell on the floor, you don't want it to " "accumulate vertical speed due to the effect of gravity. Instead, you want " "its vertical speed to reset to zero." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:178 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:183 msgid "" "``move_and_slide()`` may also recalculate the kinematic body's velocity " "several times in a loop as, to produce a smooth motion, it moves the " @@ -43371,23 +44029,23 @@ msgid "" "in our ``velocity`` variable, and use on the next frame." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:187 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:192 msgid "" "To see these examples in action, download the sample project: :download:" "`using_kinematic2d.zip `." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:191 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:196 msgid "Movement and walls" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:193 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:198 msgid "" "If you've downloaded the sample project, this example is in \"BasicMovement." "tscn\"." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:195 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:200 msgid "" "For this example, add a ``KinematicBody2D`` with two children: a ``Sprite`` " "and a ``CollisionShape2D``. Use the Godot \"icon.png\" as the Sprite's " @@ -43396,16 +44054,16 @@ msgid "" "RectangleShape2D\" and size the rectangle to fit over the sprite image." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:201 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:206 msgid "" "See :ref:`doc_2d_movement` for examples of implementing 2D movement schemes." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:203 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:208 msgid "Attach a script to the KinematicBody2D and add the following code:" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:266 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:271 msgid "" "Run this scene and you'll see that ``move_and_collide()`` works as expected, " "moving the body along the velocity vector. Now let's see what happens when " @@ -43414,7 +44072,7 @@ msgid "" "Polygon2D, or turn on \"Visible Collision Shapes\" from the \"Debug\" menu." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:272 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:277 msgid "" "Run the scene again and try moving into the obstacle. You'll see that the " "``KinematicBody2D`` can't penetrate the obstacle. However, try moving into " @@ -43422,79 +44080,79 @@ msgid "" "it feels like the body gets stuck." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:276 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:281 msgid "" "This happens because there is no *collision response*. " "``move_and_collide()`` stops the body's movement when a collision occurs. We " "need to code whatever response we want from the collision." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:280 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:285 msgid "" "Try changing the function to ``move_and_slide(velocity)`` and running again. " "Note that we removed ``delta`` from the velocity calculation." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:283 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:288 msgid "" "``move_and_slide()`` provides a default collision response of sliding the " "body along the collision object. This is useful for a great many game types, " "and may be all you need to get the behavior you want." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:288 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:293 msgid "Bouncing/reflecting" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:290 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:295 msgid "" "What if you don't want a sliding collision response? For this example " "(\"BounceandCollide.tscn\" in the sample project), we have a character " "shooting bullets and we want the bullets to bounce off the walls." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:294 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:299 msgid "" "This example uses three scenes. The main scene contains the Player and " "Walls. The Bullet and Wall are separate scenes so that they can be instanced." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:297 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:302 msgid "" "The Player is controlled by the `w` and `s` keys for forward and back. " "Aiming uses the mouse pointer. Here is the code for the Player, using " "``move_and_slide()``:" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:384 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:389 msgid "And the code for the Bullet:" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:446 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:451 msgid "" "The action happens in ``_physics_process()``. After using " "``move_and_collide()``, if a collision occurs, a ``KinematicCollision2D`` " "object is returned (otherwise, the return is ``Nil``)." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:450 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:455 msgid "" "If there is a returned collision, we use the ``normal`` of the collision to " "reflect the bullet's ``velocity`` with the ``Vector2.bounce()`` method." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:453 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:458 msgid "" "If the colliding object (``collider``) has a ``hit`` method, we also call " "it. In the example project, we've added a flashing color effect to the Wall " "to demonstrate this." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:460 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:465 msgid "Platformer movement" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:462 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:467 msgid "" "Let's try one more popular example: the 2D platformer. ``move_and_slide()`` " "is ideal for quickly getting a functional character controller up and " @@ -43502,18 +44160,18 @@ msgid "" "\"Platformer.tscn\"." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:466 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:471 msgid "" "For this example, we'll assume you have a level made of ``StaticBody2D`` " "objects. They can be any shape and size. In the sample project, we're using :" "ref:`Polygon2D ` to create the platform shapes." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:470 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:475 msgid "Here's the code for the player body:" msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:551 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:556 msgid "" "When using ``move_and_slide()``, the function returns a vector representing " "the movement that remained after the slide collision occurred. Setting that " @@ -43522,14 +44180,14 @@ msgid "" "don't do this." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:556 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:561 msgid "" "Also note that we've added ``Vector2(0, -1)`` as the floor normal. This " "vector points straight upward. As a result, if the character collides with " "an object that has this normal, it will be considered a floor." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:560 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:565 msgid "" "Using the floor normal allows us to make jumping work, using " "``is_on_floor()``. This function will only return ``true`` after a " @@ -43538,7 +44196,7 @@ msgid "" "setting ``floor_max_angle``." msgstr "" -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:565 +#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:570 msgid "" "This angle also allows you to implement other features like wall jumps using " "``is_on_wall()``, for example." @@ -44935,7 +45593,7 @@ msgstr "" msgid "" "When we refer to a value such as `t.x.y`, that's the Y component of the X " "column vector. In other words, the bottom-left of the matrix. Similarly, `t." -"x.x` is top-left, `t.y.x` is top-right,and `t.y.y` is bottom-right, where " +"x.x` is top-left, `t.y.x` is top-right, and `t.y.y` is bottom-right, where " "`t` is the Transform2D." msgstr "" @@ -48484,7 +49142,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/io/background_loading.rst:24 -#: ../../docs/community/contributing/updating_the_class_reference.rst:233 +#: ../../docs/community/contributing/updating_the_class_reference.rst:237 msgid "Usage" msgstr "" @@ -48685,7 +49343,8 @@ msgstr "" #: ../../docs/tutorials/io/background_loading.rst:298 msgid "" "**Note**: this code, in its current form, is not tested in real world " -"scenarios. Ask punto on IRC (#godotengine on irc.freenode.net) for help." +"scenarios. If you run into any issues, ask for help in one of `Godot's " +"community channels `__." msgstr "" #: ../../docs/tutorials/io/data_paths.rst:4 @@ -51991,7 +52650,7 @@ msgid "th_TH_TH" msgstr "" #: ../../docs/tutorials/i18n/locales.rst:652 -msgid "Thai (Thailand,TH)" +msgid "Thai (Thailand, TH)" msgstr "" #: ../../docs/tutorials/i18n/locales.rst:654 @@ -52689,7 +53348,7 @@ msgstr "" #: ../../docs/tutorials/gui/size_and_anchors.rst:29 msgid "" -"When horizontal (left,right) and/or vertical (top,bottom) anchors are " +"When horizontal (left, right) and/or vertical (top, bottom) anchors are " "changed to 1, the margin values become relative to the bottom-right corner " "of the parent control or viewport." msgstr "" @@ -53064,7 +53723,7 @@ msgid "Reference" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:51 -#: ../../docs/community/contributing/updating_the_class_reference.rst:233 +#: ../../docs/community/contributing/updating_the_class_reference.rst:237 msgid "Tag" msgstr "" @@ -53257,164 +53916,188 @@ msgstr "" msgid "Change {text} color; use name or # format, such as #ff00ff." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:87 -msgid "Built-in color names" +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:85 +msgid "**table**" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:89 -msgid "List of valid color names for the [color=] tag:" +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:85 +msgid "``[table=]{cells}[/table]``" +msgstr "" + +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:85 +msgid "Creates a table with of columns." +msgstr "" + +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:87 +msgid "**cell**" +msgstr "" + +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:87 +msgid "``[cell]{text}[/cell]``" +msgstr "" + +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:87 +msgid "Adds cells with the {text} to the table." msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:91 -msgid "aqua" -msgstr "" - -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:92 -msgid "black" +msgid "Built-in color names" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:93 -msgid "blue" -msgstr "" - -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:94 -msgid "fuchsia" +msgid "List of valid color names for the [color=] tag:" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:95 -msgid "gray" +msgid "aqua" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:96 -msgid "green" +msgid "black" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:97 -msgid "lime" +msgid "blue" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:98 -msgid "maroon" +msgid "fuchsia" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:99 -msgid "navy" +msgid "gray" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:100 -msgid "purple" +msgid "green" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:101 -msgid "red" +msgid "lime" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:102 -msgid "silver" +msgid "maroon" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:103 -msgid "teal" +msgid "navy" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:104 -msgid "white" +msgid "purple" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:105 -msgid "yellow" +msgid "red" +msgstr "" + +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:106 +msgid "silver" +msgstr "" + +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:107 +msgid "teal" msgstr "" #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:108 +msgid "white" +msgstr "" + +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:109 +msgid "yellow" +msgstr "" + +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:112 msgid "Hexadecimal color codes" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:110 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:114 msgid "" "For opaque RGB colors, any valid 6-digit hexadecimal code is supported, e.g. " "``[color=#ffffff]white[/color]``." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:112 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:116 msgid "" "For transparent RGB colors, any 8-digit hexadecimal code can be used, e.g. " "``[color=#88ffffff]translucent white[/color]``. In this case, note that the " "alpha channel is the **first** component of the color code, not the last one." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:116 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:120 msgid "Image vertical offset" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:118 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:122 msgid "You use a custom font for your image in order to align it vertically." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:120 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:124 msgid "Create a ``BitmapFont`` resource" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:121 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:125 msgid "" "Set this bitmap font with a positive value for the ``ascent`` property, " "that's your height offset" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:122 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:126 msgid "" "Set the BBCode tag this way: ``[font=][img]{image-path}[/img][/" "font]``" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:125 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:129 msgid "Animation effects" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:127 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:131 msgid "" "BBCode can also be used to create different text animation effects. Five " "customizable effects are provided out of the box, and you can easily create " "your own." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:131 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:135 msgid "Wave" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:135 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:139 msgid "" "Wave makes the text go up and down. Its tag format is ``[wave amp=50 freq=2]" "[/wave]``. ``amp`` controls how high and low the effect goes, and ``freq`` " "controls how fast the text goes up and down." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:140 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:144 msgid "Tornado" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:144 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:148 msgid "" "Tornao makes the text move around in a circle. Its tag format is ``[tornado " "radius=5 freq=2][/tornado]``. ``radius`` is the radius of the circle that " "controls the offset, ``freq`` is how fast the text moves in a circle." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:150 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:154 msgid "Shake" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:154 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:158 msgid "" "Shake makes the text shake. Its tag format is ``[shake rate=5 level=10][/" "shake]``. ``rate`` controls how fast the text shakes, ``level`` controls how " "far the text is offset from the origin." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:159 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:163 msgid "Fade" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:163 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:167 msgid "" "Fade creates a fade effect over the text that is not animated. Its tag " "format is ``[fade start=4 length=14][/fade]``. ``start`` controls the " @@ -53423,11 +54106,11 @@ msgid "" "take place." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:170 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:174 msgid "Rainbow" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:174 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:178 msgid "" "Rainbow gives the text a rainbow color that changes over time. Its tag " "format is ``[rainbow freq=0.2 sat=10 val=20][/rainbow]``. ``freq`` is the " @@ -53435,11 +54118,11 @@ msgid "" "rainbow, ``val`` is the value of the rainbow." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:180 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:184 msgid "Custom BBCode tags and text effects" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:182 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:186 msgid "" "You can extend the :ref:`class_RichTextEffect` resource type to create your " "own custom BBCode tags. You begin by extending the :ref:" @@ -53449,7 +54132,7 @@ msgid "" "it need to be running in ``tool`` mode." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:188 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:192 msgid "" "There is only one function that you need to extend: " "``_process_custom_fx(char_fx)``. Optionally, you can also provide a custom " @@ -53458,11 +54141,11 @@ msgid "" "to determine what the BBCode tag should be." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:194 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:198 msgid "``_process_custom_fx``" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:196 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:200 msgid "" "This is where the logic of each effect takes place and is called once per " "character during the draw phase of text rendering. This passes in a :ref:" @@ -53470,47 +54153,47 @@ msgid "" "the associated character is rendered:" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:200 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:204 msgid "" "``identity`` specifies which custom effect is being processed. You should " "use that for code flow control." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:202 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:206 msgid "" "``relative_index`` tells you how far into a given custom effect block you " "are in as an index." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:204 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:208 msgid "" "``absolute_index`` tells you how far into the entire text you are as an " "index." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:205 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:209 msgid "" "``elapsed_time`` is the total amount of time the text effect has been " "running." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:206 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:210 msgid "" "``visible`` will tell you whether the character is visible or not and will " "also allow you to hide a given portion of text." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:208 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:212 msgid "" "``offset`` is an offset position relative to where the given character " "should render under normal circumstances." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:210 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:214 msgid "``color`` is the color of a given character." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:211 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:215 msgid "" "Finally, ``env`` is a :ref:`class_Dictionary` of parameters assigned to a " "given custom effect. You can use :ref:`get() ` " @@ -53520,7 +54203,7 @@ msgid "" "its ` `env`` Dictionary. See below for more usage examples." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:217 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:221 msgid "" "The last thing to note about this function is that it is necessary to return " "a boolean ``true`` value to verify that the effect processed correctly. This " @@ -53529,23 +54212,23 @@ msgid "" "cropped up in their custom effect logic." msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:222 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:226 msgid "Here are some examples of custom effects:" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:225 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:229 msgid "Ghost" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:247 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:251 msgid "Pulse" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:273 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:277 msgid "Matrix" msgstr "" -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:307 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:311 msgid "This will add a few new BBCode commands, which can be used like so:" msgstr "" @@ -55917,7 +56600,7 @@ msgid "**int, float**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 -msgid "hint_range(min,max [,step])" +msgid "hint_range(min, max[, step])" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -57094,9 +57777,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:191 #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:302 #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:52 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:109 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:156 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:205 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:110 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:214 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:53 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:65 msgid "Built-in" @@ -57105,19 +57788,17 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:96 #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:304 #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:54 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:229 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:55 msgid "in float **TIME**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:96 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:54 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:55 msgid "Global time, in seconds." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:58 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:59 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:59 msgid "Vertex built-ins" msgstr "" @@ -57156,24 +57837,24 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:128 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:101 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:102 msgid "" "For instancing, the INSTANCE_CUSTOM variable contains the instance custom " "data. When using particles, this information is usually:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:131 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:104 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 msgid "**x**: Rotation angle in radians." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:132 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:106 msgid "**y**: Phase during lifetime (0 to 1)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:133 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:106 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:107 msgid "**z**: Animation frame." msgstr "" @@ -57225,7 +57906,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:147 #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:319 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:115 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:116 msgid "View space to clip space transform." msgstr "" @@ -57277,7 +57958,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:159 #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:214 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:162 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:167 msgid "inout vec3 **NORMAL**" msgstr "" @@ -57313,7 +57994,7 @@ msgid "Roughness for vertex lighting." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:167 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:127 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:128 msgid "inout vec2 **UV**" msgstr "" @@ -57344,8 +58025,8 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:174 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:129 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:171 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:130 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:176 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:67 msgid "inout vec4 **COLOR**" msgstr "" @@ -57355,7 +58036,7 @@ msgid "Color from vertices." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:176 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:131 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:136 msgid "inout float **POINT_SIZE**" msgstr "" @@ -57372,7 +58053,7 @@ msgid "Instance ID for instancing." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:180 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:117 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:118 msgid "in vec4 **INSTANCE_CUSTOM**" msgstr "" @@ -57381,7 +58062,7 @@ msgid "Instance custom data (for particles, mostly)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:184 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:135 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:140 msgid "Fragment built-ins" msgstr "" @@ -57396,8 +58077,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:195 #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:308 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:158 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:207 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:163 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:216 msgid "in vec4 **FRAGCOORD**" msgstr "" @@ -57410,13 +58091,13 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:198 #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:313 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:111 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:112 msgid "in mat4 **WORLD_MATRIX**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:319 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:115 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:116 msgid "in mat4 **PROJECTION_MATRIX**" msgstr "" @@ -57463,7 +58144,7 @@ msgid "Binormal that comes from vertex function." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:220 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:164 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:169 msgid "out vec3 **NORMALMAP**" msgstr "" @@ -57481,8 +58162,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:224 #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:325 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:169 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:214 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:174 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:223 msgid "in vec2 **UV**" msgstr "" @@ -57502,7 +58183,7 @@ msgid "UV2 that comes from vertex function." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:216 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:225 msgid "in vec4 **COLOR**" msgstr "" @@ -57682,8 +58363,8 @@ msgid "Custom depth value (0..1)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:272 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:182 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:225 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:191 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:239 msgid "in vec2 **SCREEN_UV**" msgstr "" @@ -57692,8 +58373,8 @@ msgid "Screen UV coordinate for current pixel." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:274 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:186 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:227 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:195 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:241 msgid "in vec2 **POINT_COORD**" msgstr "" @@ -57702,7 +58383,7 @@ msgid "Point Coordinate for drawing points with POINT_SIZE." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:278 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:194 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:203 msgid "Light built-ins" msgstr "" @@ -57751,7 +58432,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:323 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:211 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:220 msgid "in vec3 **NORMAL**" msgstr "" @@ -57872,108 +58553,128 @@ msgstr "" msgid "VERTEX/NORMAL/etc need to be transformed manually in vertex function." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:54 +msgid "" +"Global time, in seconds. It's subject to the rollover setting (which is " +"3,600 -1 hour- by default)." +msgstr "" + +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:61 msgid "" "Vertex data (``VERTEX``) is presented in local space (pixel coordinates, " "relative to the camera). If not written to, these values will not be " "modified and be passed through as they came." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:63 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:64 msgid "" "The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:76 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:77 msgid "" "``WORLD_MATRIX`` is actually a modelview matrix. It takes input in local " "space and transforms it into view space." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:79 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:80 msgid "" "In order to get the world space coordinates of a vertex, you have to pass in " "a custom uniform like so:" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:86 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:87 msgid "Then, in your vertex shader:" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:97 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:98 msgid "" "``world_position`` can then be used in either the vertex or fragment " "functions." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:99 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:100 msgid "" "Other built-ins, such as UV and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:111 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:112 msgid "Image space to view space transform." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:113 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:114 msgid "in mat4 **EXTRA_MATRIX**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:113 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:114 msgid "Extra transform." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:117 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:118 msgid "Instance custom data." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:119 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:188 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:120 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:197 msgid "in bool **AT_LIGHT_PASS**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:119 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:188 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:120 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:197 msgid "``true`` if this is a light pass." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:121 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:122 msgid "inout vec2 **VERTEX**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:121 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:122 msgid "Vertex, in image space." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:123 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:178 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:221 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:124 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:187 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:235 msgid "in vec2 **TEXTURE_PIXEL_SIZE**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:123 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:178 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:221 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:124 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:187 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:235 msgid "" "Normalized pixel size of default 2D texture. For a Sprite with a texture of " "size 64x32px, **TEXTURE_PIXEL_SIZE** = :code:`vec2(1/64, 1/32)`" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:127 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:128 msgid "UV." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:129 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:130 msgid "Color from vertex primitive." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:131 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:132 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:179 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:229 +msgid "in vec4 **MODULATE**" +msgstr "" + +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:132 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:179 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:229 +msgid "" +"Final modulate color. If used, **COLOR** will not be multiplied by modulate " +"automatically after the fragment function." +msgstr "" + +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:136 msgid "Point size for point drawing." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:137 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:142 msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " @@ -57982,7 +58683,7 @@ msgid "" "color for such nodes, use:" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:146 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:151 msgid "" "This differs from the behavior of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " @@ -57992,83 +58693,83 @@ msgid "" "and overwriting ``NORMAL``." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:158 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:207 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:163 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:216 msgid "" "Coordinate of pixel center. In screen space. ``xy`` specifies position in " "window, ``z`` specifies fragment depth if ``DEPTH`` is not used. Origin is " "lower-left." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:162 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:167 msgid "Normal read from **NORMAL_TEXTURE**. Writable." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:164 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:169 msgid "" "Configures normal maps meant for 3D for use in 2D. If used, overwrites " "**NORMAL**." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:167 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:172 msgid "inout float **NORMALMAP_DEPTH**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:167 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:172 msgid "Normalmap depth for scaling." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:169 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:174 msgid "UV from vertex function." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:171 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:176 msgid "" "Color from vertex function and output fragment color. If unused, will be set " "to **TEXTURE** color." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:174 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:183 msgid "in sampler2D **TEXTURE**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:174 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:183 msgid "Default 2D texture." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:176 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:185 msgid "in sampler2D **NORMAL_TEXTURE**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:176 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:185 msgid "Default 2D normal texture." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:182 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:191 msgid "Screen UV for use with **SCREEN_TEXTURE**." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:184 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:193 msgid "in vec2 **SCREEN_PIXEL_SIZE**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:184 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:193 msgid "Size of individual pixels. Equal to inverse of resolution." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:186 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:195 msgid "Coordinate for drawing points." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:190 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:199 msgid "in sampler2D **SCREEN_TEXTURE**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:190 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:199 msgid "Screen texture, mipmaps contain gaussian blurred versions." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:196 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:205 msgid "" "Light processor functions work differently in 2D than they do in 3D. In " "CanvasItem shaders, the shader is called once for the object being drawn, " @@ -58079,105 +58780,102 @@ msgid "" "visible where it is covered by light." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:202 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:211 msgid "" "When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:211 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:220 msgid "" "Input Normal. Although this value is passed in, **normal calculation still " "happens outside of this function**." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:214 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:223 msgid "UV from vertex function, equivalent to the UV in the fragment function." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:216 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:225 msgid "" -"Input Color. This is the output of the fragment function with final " -"modulation applied." +"Input Color. This is the output of the fragment function (with final " +"modulation applied, if **MODULATE** is not used in any function of the " +"shader)." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:219 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:233 msgid "sampler2D **TEXTURE**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:219 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:233 msgid "Current texture in use for CanvasItem." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:225 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:239 msgid "**SCREEN_TEXTURE** Coordinate (for using with screen texture)." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:227 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:241 msgid "UV for Point Sprite." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:229 -msgid "Global time in seconds." -msgstr "" - -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:231 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:243 msgid "inout vec2 **LIGHT_VEC**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:231 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:243 msgid "" "Vector from light to fragment in local coordinates. It can be modified to " "alter illumination direction when normal maps are used." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:234 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:246 msgid "inout vec2 **SHADOW_VEC**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:234 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:246 msgid "" "Vector from light to fragment in local coordinates. It can be modified to " "alter shadow computation." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:237 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:249 msgid "inout float **LIGHT_HEIGHT**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:237 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:249 msgid "Height of Light. Only effective when normals are used." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:239 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:251 msgid "inout vec4 **LIGHT_COLOR**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:239 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:251 msgid "Color of Light." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:241 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:253 msgid "in vec2 **LIGHT_UV**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:241 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:253 msgid "UV for Light texture." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:243 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:255 msgid "out vec4 **SHADOW_COLOR**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:243 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:255 msgid "Shadow Color of Light." msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:245 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:257 msgid "inout vec4 **LIGHT**" msgstr "" -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:245 +#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:257 msgid "" "Value from the Light texture and output color. Can be modified. If not used, " "the light function is ignored." @@ -61136,11 +61834,11 @@ msgid "" msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:4 -msgid "High level multiplayer" +msgid "High-level multiplayer" msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:7 -msgid "High level vs low level API" +msgid "High-level vs low-level API" msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:9 @@ -61313,7 +62011,7 @@ msgstr "" #: ../../docs/tutorials/networking/high_level_multiplayer.rst:78 msgid "" -"To initialize high level networking, the SceneTree must be provided a " +"To initialize high-level networking, the SceneTree must be provided a " "NetworkedMultiplayerPeer object." msgstr "" @@ -61754,6 +62452,21 @@ msgid "" "cases, like single target damage." msgstr "" +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:427 +msgid "" +"Once you've made a multiplayer game, you may want to export it to run it on " +"a dedicated server with no GPU available. See :ref:" +"`doc_exporting_for_dedicated_servers` for more information." +msgstr "" + +#: ../../docs/tutorials/networking/high_level_multiplayer.rst:433 +msgid "" +"The code samples on this page aren't designed to run on a dedicated server. " +"You'll have to modify them so the server isn't considered to be a player. " +"You'll also have to modify the game starting mechanism so that the first " +"player who joins can start the game." +msgstr "" + #: ../../docs/tutorials/networking/http_request_class.rst:4 msgid "Making HTTP requests" msgstr "" @@ -61900,8 +62613,8 @@ msgstr "" #: ../../docs/tutorials/networking/ssl_certificates.rst:16 msgid "" -"For SSL to work, certificates need to be provided. A .crt file must be " -"specified in the project settings:" +"Godot includes SSL certificates from Mozilla, but you can provide your own " +"with a .crt file in the project settings:" msgstr "" #: ../../docs/tutorials/networking/ssl_certificates.rst:21 @@ -62406,48 +63119,38 @@ msgid "Current version number of the asset." msgstr "" #: ../../docs/tutorials/assetlib/using_assetlib.rst:63 -msgid "" -"Asset's average rating, displayed in stars. (This is currently " -"unimplemented.)" -msgstr "" - -#: ../../docs/tutorials/assetlib/using_assetlib.rst:64 msgid "Asset's category, Godot version, and support status." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:65 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:64 msgid "Asset's original author/submitter." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:66 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:65 msgid "The license the asset is distributed under." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:67 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:66 msgid "The date of the asset's latest edit/update." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:68 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:67 msgid "A textual description of the asset." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:69 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:68 msgid "Links related to the asset (download link, file list, issue tracker)." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:70 -msgid "A SHA-256 hash of the asset, for download validation purposes." -msgstr "" - -#: ../../docs/tutorials/assetlib/using_assetlib.rst:71 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:69 msgid "Images and videos showcasing the asset." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:74 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:72 msgid "Registering and logging in" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:76 +#: ../../docs/tutorials/assetlib/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 " @@ -62456,88 +63159,88 @@ msgid "" "the assets." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:81 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:79 msgid "The login/registration page can be accessed from the AssetLib header." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:85 +#: ../../docs/tutorials/assetlib/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:90 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:88 msgid "Then, you can use your username and password to log in." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:94 +#: ../../docs/tutorials/assetlib/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:97 +#: ../../docs/tutorials/assetlib/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:98 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:96 msgid "A list of your uploaded assets." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:99 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:97 msgid "The ability to submit new assets." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:101 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:99 msgid "|image6|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:103 +#: ../../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`." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:107 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:105 msgid "In the editor" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:109 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:107 msgid "" "You can also access the AssetLib directly from Godot. It is available from " "two places - in the Project Manager's Templates tab, and inside of a " "project, from the workspaces list." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:113 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:111 msgid "|image7|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:115 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:113 msgid "|image14|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:117 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:115 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:121 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:119 msgid "|image8|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:123 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:121 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:126 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:124 msgid "" "Notably, you can only fetch assets for the current version of Godot you are " "running. Projects, Demos and Templates can be downloaded from from the " @@ -62548,7 +63251,7 @@ msgid "" "every change to your search query for the changes to take place)." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:134 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:132 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 " @@ -62557,36 +63260,36 @@ msgid "" "machine's web server (the localhost option)." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:140 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:138 msgid "When you click on an asset, you will see more information about it." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:142 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:140 msgid "|image9|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:144 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:142 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:148 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:146 msgid "|image10|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:150 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:148 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:153 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:151 msgid "|image11|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:155 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:153 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 " @@ -62595,11 +63298,11 @@ msgid "" "stating why it cannot be installed." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:161 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:159 msgid "|image12|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:163 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:161 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 " @@ -62607,11 +63310,11 @@ msgid "" "that the Package installation is complete." msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:168 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:166 msgid "|image13|" msgstr "" -#: ../../docs/tutorials/assetlib/using_assetlib.rst:170 +#: ../../docs/tutorials/assetlib/using_assetlib.rst:168 msgid "" "You may also use the Import button to import asset archives obtained " "elsewhere (such as downloading them directly from the AssetLib web " @@ -62662,56 +63365,55 @@ msgstr "" #: ../../docs/tutorials/assetlib/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. `_" +msgstr "" + +#: ../../docs/tutorials/assetlib/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:36 +#: ../../docs/tutorials/assetlib/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." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:39 -msgid "" -"Do not set the download commit to \"master\". The asset library validates " -"all assets with a SHA256 hash, so the version hosted on GitHub needs to be " -"*exactly* the same. Instead of \"master\", either specify a commit hash, or " -"tag versions and specify a version number." -msgstr "" - -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:44 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:43 msgid "" "Use proper English for the name and description of your asset. This includes " "using correct capitalization, and using full sentences in the description." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:48 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:47 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:52 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:51 msgid "Recommendations" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:54 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:53 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:58 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:57 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:62 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:61 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 " @@ -62719,57 +63421,57 @@ msgid "" "the :ref:`doc_c_sharp_styleguide`." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:67 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:66 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:70 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:69 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:73 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:72 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:78 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:77 msgid "Submitting" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:80 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:79 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:85 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:84 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:90 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:89 msgid "**Asset Name**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:90 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:89 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:96 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:95 msgid "**Category**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:93 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:92 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, " @@ -62778,11 +63480,11 @@ msgid "" "type will only be visible from inside a project." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:102 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:101 msgid "**Godot version**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:99 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:98 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 " @@ -62792,11 +63494,11 @@ msgid "" "3.x." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:109 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:108 msgid "**Version**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:105 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:104 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 " @@ -62805,11 +63507,11 @@ msgid "" "incremented every time the asset download URL is changed or updated." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:114 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:113 msgid "**Repository host**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:112 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:111 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, " @@ -62817,22 +63519,22 @@ msgid "" "uses, so the site can compute the final download link." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:117 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:116 msgid "**Repository URL**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:117 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:116 msgid "" "The URL to your asset's files/webpage. This will vary based on your choice " "of provider, but it should look similar to `https://github.com//" "`." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:122 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:121 msgid "**Issues URL**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:120 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:119 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://" @@ -62840,33 +63542,33 @@ msgid "" "use your provider's issue tracker, and it's part of the same repository." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:126 -msgid "**Download Commit/Tag**:" -msgstr "" - #: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:125 -msgid "" -"The commit or tag of the asset. For example, " -"`b1d3172f89b86e52465a74f63a74ac84c491d3e1` or `v1.0`. The site computes the " -"actual download URL from this." +msgid "**Download Commit**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:130 -msgid "**Icon URL**:" +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:124 +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:129 +msgid "**Icon URL**:" +msgstr "" + +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:128 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:135 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:134 msgid "**License**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:133 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:132 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), " @@ -62874,11 +63576,11 @@ msgid "" "opensource.org>`_ for a detailed description of each of the listed licenses." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:141 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:140 msgid "**Description**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:138 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:137 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, " @@ -62886,41 +63588,41 @@ msgid "" "is plain text." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:143 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:142 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:147 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:146 msgid "**Type**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:148 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:147 msgid "Either an image, or a video." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:149 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:148 msgid "**Image/YouTube URL**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:150 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:149 msgid "Either a link to the image, or to a video, hosted on YouTube." msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:154 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:153 msgid "**Thumbnail URL**:" msgstr "" -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:152 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:151 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:156 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:155 msgid "" "Once you are done, hit Submit. Your asset will be entered into the pending " "queue, which you can visit on the AssetLib `here ` and " @@ -63494,7 +64196,7 @@ msgid "" "it, otherwise it will return ``null``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:166 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:164 msgid "" "The OpenVR VR interface is not included with Godot by default. You will need " "to download the OpenVR asset from the `Asset Library `_." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:169 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:167 msgid "" "The code then combines two conditionals, one to check if the `VR` variable " "is NOT null (``if VR``) and another calls the initialize function, which " @@ -63511,21 +64213,15 @@ msgid "" "turn the main Godot :ref:`Viewport ` into an ARVR viewport." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:173 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:171 msgid "" "If the VR interface initialized successfully, we then get the root :ref:" "`Viewport ` and set the `arvr` property to ``true``. This " "will tell Godot to use the initialized ARVR interface to drive the :ref:" -"`Viewport ` display. After setting the ``arvr`` property to " -"``true``, we set the ``hdr`` property to ``false``. We do this because most " -"of the VR headsets do not currently support HDR rendering." +"`Viewport ` display." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:177 -msgid "HDR support will be available for VR in Godot 3.2." -msgstr "" - -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:179 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:174 msgid "" "Finally, we disable VSync so the Frames Per Second (FPS) is not capped by " "the computer monitor. After this we tell Godot to render at ``90`` frames " @@ -63534,7 +64230,7 @@ msgid "" "headset to the frame rate of the computer monitor." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:182 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:177 msgid "" "In the project settings, under the ``Physics->Common`` tab, the physics FPS " "has been set to ``90``. This makes the physics engine run at the same frame " @@ -63542,7 +64238,7 @@ msgid "" "VR." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:187 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:182 msgid "" "That is all we need to do for Godot to launch OpenVR within the project! Go " "ahead and give it a try if you want. Assuming everything works, you will be " @@ -63551,11 +64247,11 @@ msgid "" "tracking." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:191 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:186 msgid "Creating the controllers" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:195 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:190 msgid "" "Right now all that the VR user can do is stand around, which isn't really " "what we are going for unless we are working on a VR film. Lets write the " @@ -63566,18 +64262,18 @@ msgid "" "drop, and throw :ref:`RigidBody `-based nodes." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:200 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:195 msgid "" "First we need to open the scene used for the VR controllers. " "``Left_Controller.tscn`` or ``Right_Controller.tscn``. Let's briefly go over " "how the scene is setup." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:203 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:198 msgid "How the VR controller scene is setup" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:205 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:200 msgid "" "In both scenes the root node is a ARVRController node. The only difference " "is that the ``Left_Controller`` scene has the ``Controller Id`` property set " @@ -63585,14 +64281,14 @@ msgid "" "set to ``2``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:208 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:203 msgid "" "The :ref:`ARVRServer ` attempts to use these two IDs for " "the left and right VR controllers. For VR systems that support more than 2 " "controllers/tracked-objects, these IDs may need adjusting." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:211 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:206 msgid "" "Next is the ``Hand`` :ref:`MeshInstance ` node. This " "node is used to display the hand mesh that will be used when the VR " @@ -63601,7 +64297,7 @@ msgid "" "the ``Right_Controller`` scene is a right hand." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:214 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:209 msgid "" "The node named ``Raycast`` is a :ref:`Raycast ` node that is " "used for aiming where to teleport to when the VR controller is teleporting. " @@ -63612,7 +64308,7 @@ msgid "" "the teleportation :ref:`Raycast ` is aiming." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:218 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:213 msgid "" "The node named ``Area`` is a :ref:`Area ` node will be used for " "grabbing :ref:`RigidBody `-based nodes when the VR " @@ -63623,14 +64319,14 @@ msgid "" "based node within the ``Area`` node will be picked up." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:222 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:217 msgid "" "Next is a :ref:`Position3D ` node called ``Grab_Pos``. " "This is used to define the position that grabbed :ref:`RigidBody " "` nodes will follow then they are held by the VR controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:225 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:220 msgid "" "A large :ref:`Area ` node called ``Sleep_Area`` is used to " "disable sleeping for any RigidBody nodes within its :ref:`CollisionShape " @@ -63641,7 +64337,7 @@ msgid "" "not able to sleep, therefore allowing the VR controller to grab it." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:229 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:224 msgid "" "An :ref:`AudioStreamPlayer3D ` node called " "``AudioStreamPlayer3D`` has a sound loaded that we will use when an object " @@ -63650,7 +64346,7 @@ msgid "" "and dropping objects feel more natural." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:232 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:227 msgid "" "Finally, the last nodes are the ``Grab_Cast`` node and it's only child node, " "``Mesh``. The ``Grab_Cast`` node will be used for grabbing :ref:`RigidBody " @@ -63661,7 +64357,7 @@ msgid "" "aiming." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:236 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:231 msgid "" "That is a quick overview of how the VR controller scenes are setup, and how " "we will be using the nodes to provide the functionality for them. Now that " @@ -63669,11 +64365,11 @@ msgid "" "drive them." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:240 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:235 msgid "The code for the VR controllers" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:242 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:237 msgid "" "Select the root node of the scene, either ``Right_Controller`` or " "``Left_Controller``, and make a new script called ``VR_Controller.gd``. Both " @@ -63681,13 +64377,13 @@ msgid "" "first. With ``VR_Controller.gd`` opened, add the following code:" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:245 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:240 msgid "" "You can copy and paste the code from this page directly into the script " "editor." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:249 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:244 msgid "" "To convert the spaces to tabs in the script editor, click the ``Edit`` menu " "and select ``Convert Indent To Tabs``. This will convert all the spaces into " @@ -63695,48 +64391,48 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:540 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:535 msgid "" "This is quite a bit of code to go through. Let's go through what the code " "does step-by-step." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:543 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:538 msgid "Explaining the VR controller code" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:545 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:540 #: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_two.rst:84 msgid "First, let's go through all the class variables in the script:" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:547 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:542 msgid "" "``controller_velocity``: A variable to hold a rough approximation of the VR " "controller's velocity." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:548 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:543 msgid "" "``prior_controller_position``: A variable to hold the VR controller's last " "position in 3D space." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:549 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:544 msgid "" "``prior_controller_velocities``: An Array to hold the last 30 calculated VR " "controller velocities. This is used to smooth the velocity calculations over " "time." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:550 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:545 msgid "" "``held_object``: A variable to hold a reference to the object the VR " "controller is holding. If the VR controller is not holding any objects, this " "variable will be ``null``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:551 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:546 msgid "" "``held_object_data``: A dictionary to hold data for the :ref:`RigidBody " "` node being held by the VR controller. This is used to " @@ -63744,32 +64440,32 @@ msgid "" "held." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:552 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:547 msgid "" "``grab_area``: A variable to hold the :ref:`Area ` node used to " "grab objects with the VR controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:553 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:548 msgid "" "``grab_raycast``: A variable to hold the :ref:`Raycast ` node " "used to grab objects with the VR controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:554 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:549 msgid "" "``grab_mode``: A variable to define the grab mode the VR controller is " "using. There are only two modes for grabbing objects in this tutorial, " "``AREA`` and ``RAYCAST``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:555 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:550 msgid "" "``grab_pos_node``: A variable to hold the node that will be used to update " "the position and rotation of held objects." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:556 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:551 msgid "" "``hand_mesh``: A variable to hold the :ref:`MeshInstance " "` node that contains the hand mesh for the VR " @@ -63777,85 +64473,85 @@ msgid "" "anything." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:557 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:552 msgid "" "``hand_pickup_drop_sound``: A variable to hold the :ref:`AudioStreamPlayer3D " "` node that contains the pickup/drop sound." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:558 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:553 msgid "" "``teleport_pos``: A variable to hold the position the player will be " "teleported to when the VR controller teleports the player." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:559 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:554 msgid "" "``teleport_mesh``: A variable to hold the :ref:`MeshInstance " "` node used to show where the player is teleporting to." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:560 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:555 msgid "" "``teleport_button_down``: A variable used to track whether the controller's " "teleport button is held down. This will be used to detect if this VR " "controller is trying to teleport the player." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:561 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:556 msgid "" "``teleport_raycast``: A variable to hold the :ref:`Raycast ` " "node used to calculate the teleport position. This node also has a :ref:" "`MeshInstance ` that acts as a 'laser sight' for aiming." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:562 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:557 msgid "" "``CONTROLLER_DEADZONE``: A constant to define the deadzone for both the " "trackpad and the joystick on the VR controller. See the note below for more " "information." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:563 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:558 msgid "" "``MOVEMENT_SPEED``: A constant to define the speed the player moves at when " "using the trackpad/joystick to move artificially." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:564 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:559 msgid "" "``CONTROLLER_RUMBLE_FADE_SPEED``: A constant to define how fast the VR " "controller rumble fades." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:565 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:560 msgid "" "``directional_movement``: A variable to hold whether this VR controller is " "moving the player using the touchpad/joystick." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:567 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:562 msgid "" "You can find a great article explaining all about how to handle touchpad/" "joystick dead zones `here `__." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:569 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:564 msgid "" "We are using a translated version of the scaled radial dead zone code " "provided in that article for the VR controller's joystick/touchpad. The " "article is a great read, and I highly suggest giving it a look!" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:572 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:567 msgid "" "That is quite a few class variables. Most of them are used to hold " "references to nodes we will need throughout the code. Next let's start " "looking at the functions, starting with the ``_ready`` function." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:578 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:573 #: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_two.rst:98 #: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_two.rst:286 #: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_two.rst:684 @@ -63863,14 +64559,14 @@ msgstr "" msgid "``_ready`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:580 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:575 msgid "" "First we tell Godot to silence the warnings about not using the values " "returned by the ``connect`` function. We will not need the returned values " "for this tutorial." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:583 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:578 msgid "" "Next we get the :ref:`Raycast ` node we are going to use for " "determining the position for teleporting and assign it to the " @@ -63882,7 +64578,7 @@ msgid "" "VR controllers." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:587 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:582 msgid "" "Then the ``teleport_button_down`` variable is set to false, ``teleport_mesh." "visible`` is set to ``false``, and ``teleport_raycast.visible`` is set to " @@ -63890,14 +64586,14 @@ msgid "" "initial, not teleporting the player, state." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:590 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:585 msgid "" "The code then gets the ``grab_area`` node, the ``grab_raycast`` node, and " "the ``grab_pos_node`` node and assigns them all to their respective " "variables for use later." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:592 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:587 msgid "" "Next the ``grab_mode`` is set to ``AREA`` so the VR controller will attempt " "to grab objects using the :ref:`Area ` node defined in " @@ -63906,7 +64602,7 @@ msgid "" "'laser sight' child node of ``grab_raycast`` is not visible." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:595 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:590 msgid "" "After that we connect the ``body_entered`` and ``body_exited`` signals from " "the ``Sleep_Area`` node in the VR controller to the ``sleep_area_entered`` " @@ -63915,13 +64611,13 @@ msgid "" "` nodes unable to sleep when nearby the VR controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:598 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:593 msgid "" "Then the ``hand_mesh`` and ``hand_pickup_drop_sound`` nodes are gotten and " "assigned them to their respective variables for use later." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:600 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:595 msgid "" "Finally, the ``button_pressed`` and ``button_release`` signals in the :ref:" "`ARVRController ` node, which the VR controller " @@ -63931,7 +64627,7 @@ msgid "" "functions defined in this script will be called." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:606 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:601 #: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_two.rst:106 #: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_two.rst:292 #: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_two.rst:694 @@ -63939,7 +64635,7 @@ msgstr "" msgid "``_physics_process`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:608 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:603 msgid "" "First we check to see if the ``rumble`` variable is more than zero. If the " "``rumble`` variable, which is a property of the :ref:`ARVRController " @@ -63947,7 +64643,7 @@ msgid "" "rumbles." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:611 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:606 msgid "" "If the ``rumble`` variable is more than zero, then we reduce the rumble by " "``CONTROLLER_RUMBLE_FADE_SPEED`` every second by subtracting " @@ -63956,21 +64652,21 @@ msgid "" "zero if its value is less than zero." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:614 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:609 msgid "" "This small section of code is all we need for reducing the VR controller's " "rumble. Now when we set ``rumble`` to a value, this code will automatically " "make it fade over time." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:618 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:613 msgid "" "The first section of code checks to see if the ``teleport_button_down`` " "variable is equal to ``true``, which means this VR controller is trying to " "teleport." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:620 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:615 msgid "" "If ``teleport_button_down`` is equal to ``true``, we force the " "``teleport_raycast`` :ref:`Raycast ` node to update using the " @@ -63979,7 +64675,7 @@ msgid "" "with the latest version of the physics world." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:623 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:618 msgid "" "The code then checks to see if the ``teleport_raycast`` collided with " "anything by checking of the ``is_colliding`` function in " @@ -63991,14 +64687,14 @@ msgid "" "axis." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:627 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:622 msgid "" "We do this because we do not want the user to be able to teleport onto " "RigidBody nodes and we only want the player to be able to teleport on floor-" "like surfaces." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:629 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:624 msgid "" "If all these conditions are met, then we assign the ``teleport_pos`` " "variable to the ``get_collision_point`` function in ``teleport_raycast``. " @@ -64007,7 +64703,7 @@ msgid "" "in ``teleport_pos``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:632 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:627 msgid "" "This section of code will get the position the player is aiming at with the " "teleportation raycast and update the teleportation mesh, giving a visual " @@ -64015,7 +64711,7 @@ msgid "" "teleport button." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:637 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:632 msgid "" "The next section of code first checks to see if the VR controller is active " "through the ``get_is_active`` function, which is defined by :ref:" @@ -64023,7 +64719,7 @@ msgid "" "then it calls the ``_physics_process_update_controller_velocity`` function." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:640 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:635 msgid "" "The ``_physics_process_update_controller_velocity`` function will calculate " "the VR controller's velocity through changes in position. It is not perfect, " @@ -64031,14 +64727,14 @@ msgid "" "which is fine for the purposes of this tutorial." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:645 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:640 msgid "" "The next section of code checks to see if the VR controller is holding an " "object by checking to see if the ``held_object`` variable is not equal to " "``null``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:647 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:642 msgid "" "If the VR controller is holding an object, we first store it's scale in a " "temporary variable called ``held_scale``. We then set the " @@ -64047,20 +64743,20 @@ msgid "" "rotation, and scale of the ``grab_pos_node`` node in world space." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:650 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:645 msgid "" "However, because we do not want the held object to change in scale when it " "is grabbed, we need to set the ``scale`` property of the ``held_object`` " "node back to ``held_scale``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:652 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:647 msgid "" "This section of code will keep the held object in the same position and " "rotation as the VR controller, keeping it synced with the VR controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:656 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:651 msgid "" "Finally, the last section of code simply calls the " "``_physics_process_directional_movement`` function. This function contains " @@ -64068,19 +64764,19 @@ msgid "" "controller moves." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:661 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:656 msgid "" "``_physics_process_update_controller_velocity`` function step-by-step " "explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:663 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:658 msgid "" "First this function resets the ``controller_velocity`` variable to zero :ref:" "`Vector3 `." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:667 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:662 msgid "" "Then we check to see if there are any stored/cached VR controller velocities " "saved in the ``prior_controller_velocities`` array. We do this by checking " @@ -64089,7 +64785,7 @@ msgid "" "iterate through each of the stored velocities using a ``for`` loop." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:670 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:665 msgid "" "For each of the cached velocities, we simply add its value to " "``controller_velocity``. Once the code has gone through all of the cached " @@ -64100,7 +64796,7 @@ msgid "" "velocity more accurate." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:676 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:671 msgid "" "Next we calculate the change in position the VR controller has taken since " "the last ``_physics_process`` function call. We do this by subtracting " @@ -64111,7 +64807,7 @@ msgid "" "which we store in a variable called ``relative_controller_position``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:680 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:675 msgid "" "Next we add the change in position to ``controller_velocity`` so the latest " "change in position is taken into account in the velocity calculation. We " @@ -64120,7 +64816,7 @@ msgid "" "controller's velocity." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:683 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:678 msgid "" "Then ``prior_controller_position`` is updated with the global position of " "the VR controller, ``global_transform.origin``. We then divide " @@ -64131,7 +64827,7 @@ msgid "" "enough." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:687 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:682 msgid "" "Finally, the function checks to see if the ``prior_controller_velocities`` " "has more than ``30`` velocities cached by checking if the ``size()`` " @@ -64141,7 +64837,7 @@ msgid "" "passing in a index position of ``0``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:693 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:688 msgid "" "What this function ultimately does is that it gets a rough idea of the VR " "controller's velocity by calculating the VR controller's relative changes in " @@ -64150,33 +64846,33 @@ msgid "" "3D space." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:698 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:693 msgid "" "``_physics_process_directional_movement`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:700 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:695 msgid "" "First this function gets the axes for the trackpad and the joystick and " "assigns them to :ref:`Vector2 ` variables called " "``trackpad_vector`` and ``joystick_vector`` respectively." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:702 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:697 msgid "" "You may need to remap the joystick and/or touchpad index values depending on " "your VR headset and controller. The inputs in this tutorial are the index " "values of a Windows Mixed Reality headset." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:705 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:700 msgid "" "Then ``trackpad_vector`` and ``joystick_vector`` have their deadzones " "account for. The code for this is detailed in the article below, with slight " "changes as the code is converted from C# to GDScript." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:708 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:703 msgid "" "Once the ``trackpad_vector`` and ``joystick_vector`` variables have had " "their deadzones account for, the code then gets the forward and right " @@ -64191,7 +64887,7 @@ msgid "" "``right_direction``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:714 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:709 msgid "" "Next the code adds the ``trackpad_vector`` and ``joystick_vector`` variables " "together and normalizes the results using the ``normalized`` function. This " @@ -64200,7 +64896,7 @@ msgid "" "the combined direction to a variable called ``movement_vector``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:717 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:712 msgid "" "Then we calculate the distance the user will move forward, relative to the " "forward direction stored in ``forward_direction``. To calculate this, we " @@ -64210,7 +64906,7 @@ msgid "" "this to a variable called ``movement_forward``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:721 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:716 msgid "" "We do a similar calculation for the distance the user will move right, " "relative to the right direction stored in ``right_direction``. To calculate " @@ -64220,7 +64916,7 @@ msgid "" "right or left. We assign this to a variable called ``movement_right``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:725 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:720 msgid "" "Next we remove any movement on the ``Y`` axis of ``movement_forward`` and " "``movement_right`` by assigning their ``Y`` values to ``0``. We do this so " @@ -64228,7 +64924,7 @@ msgid "" "doing this, the player could fly in the direction they are facing." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:728 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:723 msgid "" "Finally, we check to see if the ``length`` function on ``movement_right`` or " "``movement_forward`` is greater than ``0``. If it is, then we need to move " @@ -64241,7 +64937,7 @@ msgid "" "knows this VR controller is moving the player." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:733 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:728 msgid "" "If the ``length`` function on ``movement_right`` or ``movement_forward`` is " "less than or equal to ``0``, then we simply set the ``directional_movement`` " @@ -64249,7 +64945,7 @@ msgid "" "player." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:739 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:734 msgid "" "What this function ultimately does is takes the input from the VR " "controller's trackpad and joystick and moves the player in the direction the " @@ -64258,11 +64954,11 @@ msgid "" "they will move to the left." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:744 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:739 msgid "``button_pressed`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:746 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:741 msgid "" "This function checks to see if the VR button that was just pressed is equal " "to one of the VR buttons used in this project. The ``button_index`` variable " @@ -64270,45 +64966,45 @@ msgid "" "`, which we connected in the ``_ready`` function." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:749 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:744 msgid "" "There are only three buttons we are looking for in this project: the trigger " "button, the grab/grip button, and the menu button." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:751 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:746 msgid "" "You may need to remap these button index values depending on your VR headset " "and controller. The inputs in this tutorial are the index values of a " "Windows Mixed Reality headset." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:754 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:749 msgid "" "First we check if the ``button_index`` is equal to ``15``, which should map " "to the trigger button on the VR controller. If the button pressed is the " "trigger button, then the ``_on_button_pressed_trigger`` function is called." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:757 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:752 msgid "" "If the ``button_index`` is equal to ``2``, then the grab button was just " "pressed. If the button pressed is the grab button, the " "``_on_button_pressed_grab`` function is called." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:759 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:754 msgid "" "Finally, if the ``button_index`` is equal to ``1``, then the menu button was " "just pressed. If the button pressed is the menu button, the " "``_on_button_pressed_menu`` function is called." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:763 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:758 msgid "``_on_button_pressed_trigger`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:765 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:760 msgid "" "First this function checks to see if the VR controller is not holding by " "checking if ``held_object`` is equal to ``null``. If the VR controller is " @@ -64319,7 +65015,7 @@ msgid "" "visible if the other VR controller is teleporting." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:769 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:764 msgid "" "If ``teleport_mesh.visible`` is equal to ``false``, then we can teleport " "with this VR controller. We set the ``teleport_button_down`` variable to " @@ -64331,7 +65027,7 @@ msgid "" "to aim the teleportation pos." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:776 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:771 msgid "" "If ``held_object`` is not equal to ``null``, then the VR controller is " "holding something. We then check to see if the object that is being held, " @@ -64342,14 +65038,14 @@ msgid "" "project." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:780 -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:855 -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:879 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:775 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:850 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:874 msgid "" "Don't worry, we will cover ``VR_Interactable_Rigidbody`` after this section!" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:782 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:777 msgid "" "If the ``held_object`` extends ``VR_Interactable_Rigidbody``, then we call " "the ``interact`` function, so the held object can do whatever it is supposed " @@ -64357,18 +65053,18 @@ msgid "" "controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:787 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:782 msgid "``_on_button_pressed_grab`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:789 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:784 msgid "" "First this function checks to see if ``teleport_button_down`` is equal to " "``true``. If it is, then it calls ``return``. We do this because we do not " "want the user to be able to pick up objects while teleporting." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:792 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:787 msgid "" "Then we check to see if the VR controller is currently not holding anything " "by checking if ``held_object`` is equal to ``null``. If the VR controller is " @@ -64377,24 +65073,24 @@ msgid "" "``null``, then the ``_throw_rigidbody`` function is called." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:795 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:790 msgid "" "Finally, the pick-up/drop sound is played by calling the ``play`` function " "on ``hand_pickup_drop_sound``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:799 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:794 msgid "``_pickup_rigidbody`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:801 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:796 msgid "" "First the function makes a variable called ``rigid_body``, which we'll be " "using to store the :ref:`RigidBody ` that the VR controller " "is going to pick up, assuming there is a RigidBody to pick up." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:806 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:801 msgid "" "Then the function checks to see if the ``grab_mode`` variable is equal to " "``AREA``. If it is, then it gets all of the :ref:`PhysicsBody " @@ -64404,14 +65100,14 @@ msgid "" "`PhysicsBody ` to a new variable called ``bodies``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:810 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:805 msgid "" "We then check to see if the length of the ``bodies`` variable is more than " "``0``. If it is, we go through each of the :ref:`PhysicsBody " "` nodes in ``bodies`` using a for loop." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:812 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:807 msgid "" "For each :ref:`PhysicsBody ` node, we check if it is, or " "extends, a :ref:`RigidBody ` node using ``if body is " @@ -64428,7 +65124,7 @@ msgid "" "`RigidBody ` node and break the for loop." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:818 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:813 msgid "" "What this section of code does is goes through all of the physics bodies " "within the ``grab_area`` and grabs the first :ref:`RigidBody " @@ -64437,7 +65133,7 @@ msgid "" "some additional post processing later in this function." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:823 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:818 msgid "" "If the ``grab_mode`` variable is not equal to ``AREA``, we then check to see " "if it is equal to ``RAYCAST`` instead. If it is equal to ``RAYCAST``, we " @@ -64449,7 +65145,7 @@ msgid "" "` hit something." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:827 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:822 msgid "" "If the ``grab_raycast`` hit something, we get the :ref:`PhysicsBody " "` node hit using the ``get_collider`` function. The code " @@ -64462,7 +65158,7 @@ msgid "" "the ``rigid_body`` variable." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:832 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:827 msgid "" "What this section of code does is sends the ``grab_raycast`` :ref:`Raycast " "` node out and checks if it collided with a :ref:`RigidBody " @@ -64472,7 +65168,7 @@ msgid "" "post processing later in this function." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:838 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:833 msgid "" "The final section of code first checks to see if ``rigid_body`` is not equal " "to ``null``. If ``rigid_body`` is not equal to ``null``, then the VR " @@ -64480,7 +65176,7 @@ msgid "" "picked up." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:841 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:836 msgid "" "If there is a VR controller to pickup, we assign ``held_object`` to the :ref:" "`RigidBody ` node stored in ``rigid_body``. We then store " @@ -64490,7 +65186,7 @@ msgid "" "them later when the object is dropped by the VR controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:845 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:840 msgid "" "We then set the :ref:`RigidBody `'s mode to " "``MODE_STATIC``, it's ``collision_layer`` to zero, and it's " @@ -64499,7 +65195,7 @@ msgid "" "when held by the VR controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:848 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:843 msgid "" "Next the ``hand_mesh`` :ref:`MeshInstance ` is made " "invisible by setting the ``visible`` property to ``false``. This is so the " @@ -64508,7 +65204,7 @@ msgid "" "property to ``false``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:851 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:846 msgid "" "Then the code checks to see if the held object extends a class called " "``VR_Interactable_Rigidbody``. If it does, then sets a variable called " @@ -64520,14 +65216,14 @@ msgid "" "``controller`` variable, through calling the ``picked_up`` function." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:857 -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:881 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:852 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:876 msgid "" "The code should make more sense after completing part 2 of this tutorial " "series, where we will actually be using ``VR_Interactable_Rigidbody``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:859 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:854 msgid "" "What this section of code does is that if a :ref:`RigidBody " "` was found using the grab :ref:`Area ` or :ref:" @@ -64535,11 +65231,11 @@ msgid "" "controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:863 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:858 msgid "``_throw_rigidbody`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:865 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:860 msgid "" "First the function checks to see if the VR controller is not holding any " "object by checking if the ``held_object`` variable is equal to ``null``. If " @@ -64549,7 +65245,7 @@ msgid "" "strange happens, this function will react as expected." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:869 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:864 msgid "" "After checking if the VR controller is holding an object, we assume it is " "and set the stored :ref:`RigidBody ` data back to the held " @@ -64559,14 +65255,14 @@ msgid "" "to the state it was prior to being picked up." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:873 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:868 msgid "" "Then we call ``apply_impulse`` on the ``held_object`` so that the :ref:" "`RigidBody ` is thrown in the direction of the VR " "controller's velocity, ``controller_velocity``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:875 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:870 msgid "" "We then check to see if the object held extends a class called " "``VR_Interactable_Rigidbody``. If it does, then we call a function called " @@ -64578,7 +65274,7 @@ msgid "" "` knows that it is not being held." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:883 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:878 msgid "" "Regardless of whether ``held_object`` extends ``VR_Interactable_Rigidbody`` " "or not, we then set ``held_object`` to ``null`` so the VR controller knows " @@ -64587,18 +65283,18 @@ msgid "" "visible`` to true." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:886 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:881 msgid "" "Finally, if the ``grab_mode`` variable is set to ``RAYCAST``, we set " "``grab_raycast.visible`` to ``true`` so the 'laser sight' for the :ref:" "`Raycast ` in ``grab_raycast`` is visible." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:890 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:885 msgid "``_on_button_pressed_menu`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:892 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:887 msgid "" "First this function checks to see if the ``grab_mode`` variable is equal to " "``AREA``. If it is, then it sets ``grab_mode`` to ``RAYCAST``. It then " @@ -64608,7 +65304,7 @@ msgid "" "'laser sight' on the grab raycast is visible." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:896 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:891 msgid "" "If the ``grab_mode`` variable is not equal to ``AREA``, then it checks to " "see if it is equal to ``RAYCAST``. If it is, then it sets the ``grab_mode`` " @@ -64616,7 +65312,7 @@ msgid "" "sight' on the grab raycast is not visible." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:899 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:894 msgid "" "This section of code simply changes how the VR controller will grab :ref:" "`RigidBody `-based nodes when the grab/grip button is " @@ -64627,11 +65323,11 @@ msgid "" "be used for detecting :ref:`RigidBody ` nodes." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:905 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:900 msgid "``button_released`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:907 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:902 msgid "" "The only section of code in this function checks to see if the index of the " "button that was just released, ``button_index``, is equal to ``15``, which " @@ -64641,24 +65337,24 @@ msgid "" "``_ready`` function." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:910 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:905 msgid "" "If the trigger button was just released, then the " "``_on_button_released_trigger`` function is called." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:914 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:909 msgid "``_on_button_released_trigger`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:916 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:911 msgid "" "The only section of code in this function first checks to see if the VR " "controller is trying to teleport by checking if the ``teleport_button_down`` " "variable is equal to ``true``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:918 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:913 msgid "" "If the ``teleport_button_down`` variable is equal to ``true``, the code then " "checks if there is a teleport position set and whether the teleport mesh is " @@ -64666,7 +65362,7 @@ msgid "" "``null`` and if ``teleport_mesh.visible`` is equal to ``true``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:921 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:916 msgid "" "If there is a teleport position set and the teleport mesh is visible, the " "code then calculates the offset from the camera to the :ref:`ARVROrigin " @@ -64679,7 +65375,7 @@ msgid "" "``camera_offset``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:925 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:920 msgid "" "The reason we need to know the offset is because some VR headsets use room " "tracking, where the player's camera can be offset from the :ref:`ARVROrigin " @@ -64691,7 +65387,7 @@ msgid "" "distance you have from the :ref:`ARVROrigin ` node." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:929 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:924 msgid "" "Now that we know the offset from the VR camera to the VR origin, we need to " "remove the difference on the ``Y`` axis. We do this because we do not want " @@ -64699,7 +65395,7 @@ msgid "" "teleporting the player's head would be level with the ground." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:932 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:927 msgid "" "Then we can 'teleport' the player by setting the global position " "(``global_transform.origin``) of the ARVROrigin node to the position stored " @@ -64708,7 +65404,7 @@ msgid "" "exactly where they want when teleporting." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:935 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:930 msgid "" "Finally, regardless of whether the VR controller teleported the user or not, " "we reset the teleport related variables. ``teleport_button_down`` is set to " @@ -64717,11 +65413,11 @@ msgid "" "``teleport_pos`` is set to ``null``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:940 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:935 msgid "``sleep_area_entered`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:942 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:937 msgid "" "The only section of code in this function checks to see if the :ref:" "`PhysicsBody ` node that entered the ``Sleep_Area`` node " @@ -64730,7 +65426,7 @@ msgid "" "``false``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:945 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:940 msgid "" "Without doing this, sleeping :ref:`PhysicsBody ` nodes " "would not be able to be picked up by the VR controller, even if the VR " @@ -64739,11 +65435,11 @@ msgid "" "`PhysicsBody ` nodes that are close to the VR controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:951 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:946 msgid "``sleep_area_exited`` function step-by-step explanation" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:953 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:948 msgid "" "The only section of code in this function checks to see if the :ref:" "`PhysicsBody ` node that entered the ``Sleep_Area`` node " @@ -64751,20 +65447,20 @@ msgid "" "``can_sleep`` variable to ``true``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:956 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:951 msgid "" "This allows :ref:`RigidBody ` nodes that leave the " "``Sleep_Area`` to sleep again, saving performance." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:960 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:955 msgid "" "Okay, whew! That was a lot of code! Add the same script, ``VR_Controller." "gd`` to the other VR controller scene so both VR controllers have the same " "script." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:962 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:957 msgid "" "Now we just need to do one thing before testing the project! Right now we " "are referencing a class called ``VR_Interactable_Rigidbody``, but we have " @@ -64772,32 +65468,32 @@ msgid "" "in this tutorial, let's create it real quick so the project can be run." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:968 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:963 msgid "Creating a base class for interactable VR objects" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:970 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:965 msgid "" "With the ``Script`` tab still open, create a new GDScript called " "``VR_Interactable_Rigidbody.gd``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:972 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:967 msgid "" "You can create GDScripts in the ``Script`` tab by pressing ``File -> New " "Script...``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:974 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:969 msgid "" "Once you have ``VR_Interactable_Rigidbody.gd`` open, add the following code:" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1002 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:997 msgid "Let's quickly go through what this script." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1006 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1001 msgid "" "First we start the script with ``class_name VR_Interactable_Rigidbody``. " "What this does is that it tells Godot that this GDScript is a new class that " @@ -64807,7 +65503,7 @@ msgid "" "compare the class just like all of the built-in Godot classes." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1010 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1005 msgid "" "Next is a class variable called ``controller``. ``controller`` will be used " "to hold a reference to the VR controller that is currently holding the " @@ -64817,21 +65513,21 @@ msgid "" "specific data, like ``controller_velocity``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1014 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1009 msgid "" "Finally, we have four functions. The ``_ready`` function is defined by Godot " "and all we do is simply have ``pass`` as there is nothing we need to do when " "the object is added to the scene in ``VR_Interactable_Rigidbody``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1017 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1012 msgid "" "The ``interact`` function is a stub function that will be called when the " "interact button on the VR controller, the trigger in this case, is pressed " "while the object is held." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1019 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1014 msgid "" "A stub function is a function that is defined but does not have any code. " "Stub functions are generally designed to be overwritten or extended. In this " @@ -64839,20 +65535,20 @@ msgid "" "across all interactable :ref:`RigidBody ` objects." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1022 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1017 msgid "" "The ``picked_up`` and ``dropped`` functions are stub functions that will be " "called when the object is picked up and dropped by the VR controller." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1026 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1021 msgid "" "That is all we need to do for now! In the next part of this tutorial series, " "we'll start making special interactable :ref:`RigidBody ` " "objects." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1028 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1023 msgid "" "Now that the base class is defined, the code in the VR controller should " "work. Go ahead and try the game again, and you should find you can teleport " @@ -64860,13 +65556,13 @@ msgid "" "grab/grip buttons." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1031 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1026 msgid "" "Now, you may want to try moving using the trackpads and/or joysticks, but " "**it may make you motion sick!**" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1033 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1028 msgid "" "One of the main reasons this can make you feel motion sick is because your " "vision tells you that you are moving, while your body is not moving. This " @@ -64874,11 +65570,11 @@ msgid "" "to help reduce motion sickness while moving in VR!" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1039 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1034 msgid "Reducing motion sickness" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1041 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1036 msgid "" "There are plenty of ways to reduce motion sickness in VR, and there is no " "one perfect way to reduce motion sickness. See `this page on the Oculus " @@ -64887,13 +65583,13 @@ msgid "" "reducing motion sickness." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1045 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1040 msgid "" "To help reduce motion sickness while moving, we are going to add a vignette " "effect that will only be visible while the player moves." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1047 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1042 msgid "" "First, quickly switch back to ``Game.tscn```. Under the :ref:`ARVROrigin " "` node there is a child node called ``Movement_Vignette``. " @@ -64902,7 +65598,7 @@ msgid "" "sickness." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1050 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1045 msgid "" "Open up ``Movement_Vignette.tscn``, which you can find in the ``Scenes`` " "folder. The scene is just a :ref:`ColorRect ` node with a " @@ -64912,36 +65608,36 @@ msgid "" "projects>`_." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1054 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1049 msgid "" "Let's write the code that will make the vignette shader visible when the " "player is moving. Select the ``Movement_Vignette`` node and create a new " "script called ``Movement_Vignette.gd``. Add the following code:" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1097 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1092 msgid "" "Because this script is fairly brief, let's quickly go over what it does." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1101 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1096 msgid "Explaining the vignette code" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1103 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1098 msgid "" "There are two class variables, ``controller_one`` and ``controller_two``. " "These variables will hold references to the left and right VR controllers." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1107 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1102 msgid "" "In the ``_ready`` function first waits for four frames using ``yield``. The " "reason we are waiting four frames is because we want to ensure the VR " "interface is ready and accessible." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1110 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1105 msgid "" "After waiting the primary VR interface is retrieved using ``ARVRServer." "primary_interface``, which is assigned to a variable called ``interface``. " @@ -64950,7 +65646,7 @@ msgid "" "``set_process`` with a value of ``false``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1113 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1108 msgid "" "If ``interface`` is not ``null``, then we set the ``rect_size`` of the " "vignette shader to the render size of the VR viewport so it takes up the " @@ -64960,7 +65656,7 @@ msgid "" "zero so it is in the correct position relative to the screen." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1117 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1112 msgid "" "The left and right VR controllers are then retrieved and assigned to " "``controller_one`` and ``controller_two`` respectively. Finally, the " @@ -64968,14 +65664,14 @@ msgid "" "property to ``false``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1122 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1117 msgid "" "In ``_process`` the code first checks if either ``controller_one`` or " "``controller_two`` are equal to ``null``. If either node is equal to " "``null``, then ``return`` is called so nothing happens." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1125 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1120 msgid "" "Then the code checks to see if either of the VR controllers are moving the " "player using the touchpad/joystick by checking if ``directional_movement`` " @@ -64987,14 +65683,14 @@ msgid "" "setting it's ``visible`` property to ``false``." msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1132 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1127 msgid "" "That is the whole script! Now that we have written the code, go ahead and " "try moving around with the trackpad and/or joystick. You should find that it " "is less motion sickness-inducing then before!" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1135 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1130 msgid "" "As previously mentioned, there are plenty of ways to reduce motion sickness " "in VR. Check out `this page on the Oculus Developer Center `-based " @@ -65011,7 +65707,7 @@ msgid "" "use!" msgstr "" -#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1149 +#: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:1144 msgid "" "You can download the finished project for this tutorial series on the Godot " "OpenVR GitHub repository, under the releases tab!" @@ -66462,6 +67158,176 @@ msgid "" "under the releases tab!" msgstr "" +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:4 +msgid "Developing for Oculus Quest" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:9 +msgid "" +"This tutorial goes over how to get started developing for the *Oculus Quest* " +"with an official Godot plugin." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:12 +msgid "Before starting, there are two things you need to do:" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:14 +msgid "" +"First you need to go through the steps on the :ref:" +"`doc_exporting_for_android` page. This leads you through installing the " +"toolset that Godot needs to export to Android devices." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:18 +msgid "" +"Next you need the Quest plugin. You can get it from the Asset Library or " +"manually download it from `here `__." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:22 +msgid "Setting Up Godot" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:24 +msgid "To get started open Godot and create a new project." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:28 +msgid "" +"Make sure to choose the ``GLES2`` renderer. Due to the Quest's GPU this " +"backend is far better suited for the Quest." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:31 +msgid "" +"Copy the addons folder from the Oculus Mobile asset into your Godot project. " +"Your project tree should look similar to this:" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:36 +msgid "Now you can start building the main scene:" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:38 +msgid "Add an :ref:`ARVROrigin ` node first." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:39 +msgid "" +"Then add three child nodes to the origin node, one :ref:`ARVRCamera " +"` and two :ref:`ARVRController ` " +"nodes." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:40 +msgid "" +"Assign controller ID 1 to the first :ref:`ARVRController " +"` and rename that to ``LeftHand``." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:41 +msgid "" +"Assign controller ID 2 to the second :ref:`ARVRController " +"` and rename that to ``RightHand``." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:42 +msgid "" +"Finally add a :ref:`MeshInstance ` as a child node to " +"our first :ref:`ARVRController ` and create a box " +"shape, resize the box so each side is set to 0.1. Now duplicate the :ref:" +"`MeshInstance ` and move it to the second :ref:" +"`ARVRController ` node. These will stand in for our " +"controllers." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:46 +msgid "Now add a script to the main node and add the following code:" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:73 +msgid "" +"Before you can export this project to the Quest you need to do three more " +"things." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:76 +msgid "" +"First go into the project settings and make sure that the main scene is the " +"scene we run. Godot does not ask you to set this on export." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:81 +msgid "" +"Then go into the export menu and configure a new Android export. if you " +"still haven't gone through the :ref:`doc_exporting_for_android` page do it " +"now. If you didn't you'll have some red messages on this screen." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:86 +msgid "" +"If you did you can forge ahead and make a few small changes to the export " +"settings. First change the XR Mode to ``Oculus Mobile VR``. Then change the " +"Degrees of Freedom mode to ``6DOF``." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:92 +msgid "Now save and close the export window." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:95 +msgid "Setting Up Your Quest" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:97 +msgid "" +"Finally take out your phone, when you got your Quest you needed to install " +"an Oculus app on it and link it up to your Quest. Start the Oculus app. " +"Press the settings cogwheel on the bottom right hand side. Select your Quest:" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:104 +msgid "Select \"More Settings\", and select \"Developer Mode\":" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:108 +msgid "Now turn developer mode on:" +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:112 +msgid "This allows you to deploy your games to the Quest." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:114 +msgid "" +"Connect the Quest to your PC with the provided USB cable. Put the Quest on, " +"it may give a few dialogs to give the PC permission to deploy apps. Now hit " +"the little Android button that should be visible in the top right hand side " +"of your Godot window. It should build your game and export it to the Quest." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:120 +msgid "" +"The above does the bare minimum to get your project running on the Quest, " +"it's not very exciting. Holger Dammertz has made a great toolkit for the " +"quest that contains a lot of scenes to get help you on your way including " +"really nice controller meshes." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:125 +msgid "" +"You can find the toolkit `here `__." +msgstr "" + +#: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:127 +msgid "" +"If you want to help out with improving the plugin please join us `here " +"`__." +msgstr "" + #: ../../docs/tutorials/plugins/editor/index.rst:2 msgid "Editor plugins" msgstr "" @@ -68941,10 +69807,6 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:849 -msgid "Next steps" -msgstr "" - #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " @@ -69043,89 +69905,90 @@ msgstr "" msgid "Push notifications" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:32 -msgid "" -"Making modifications to the Android export template is another use-case " -"since using a plugin for that task allows the project to remain compatible " -"with newer Godot versions." -msgstr "" - -#: ../../docs/tutorials/plugins/android/android_plugin.rst:36 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:33 msgid "Android plugin" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:38 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:35 msgid "" "While introduced in Godot 3.2.0, the Android plugin system got a significant " -"architecture update starting with Godot 3.2.2. In Godot 4.0, the new " -"architecture became the default, rendering plugins for Godot 3.2.0 " -"incompatible with Godot 4.0." +"architecture update starting with Godot 3.2.2. The new plugin system is " +"backward-incompatible with the previous one, but both systems are kept " +"functional in future releases of the 3.2.x branch. Since we previously did " +"not version the Android plugin systems, the new one is now labelled ``v1`` " +"and is the starting point for the modern Godot Android ecosystem." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:41 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:37 +msgid "" +"**Note:** In Godot 4.0, the previous system will be fully deprecated and " +"removed." +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:39 msgid "" "As a prerequisite, make sure you understand how to set up a :ref:`custom " "build environment` for Android." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:43 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:41 msgid "" "At its core, a Godot Android plugin is a `Android archive library `_ (*aar* " "archive file) with the following caveats:" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:46 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:44 msgid "" "The library must have a dependency on the Godot engine library (``godot-lib." "x.y.aar``). A stable version is made available for each Godot release." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:48 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:46 msgid "" "The library must include a specifically configured ```` tag in " "its manifest file." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:51 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:49 msgid "Building a Android plugin" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:53 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:51 msgid "" "**Prerequisite:** `Android Studio `_ " "is strongly recommended as the IDE to use to create Android plugins. The " "instructions below assumes that you're using Android Studio." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:56 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:54 msgid "" "Follow `these instructions `__ to create an Android library module for your plugin." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:58 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:56 msgid "Add the Godot engine library as a dependency to your plugin module:" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:60 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:58 msgid "Download the Godot engine library (godot-lib.x.y.aar)" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:62 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:60 msgid "" "Follow `these instructions `__ to add the Godot engine library as a " "dependency for your plugin." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:65 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:63 msgid "" "In the plugin module's ``build.gradle`` file, replace ``implementation`` " "with ``compileOnly`` for the dependency line for the Godot engine library." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:67 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:65 msgid "" "Create a new class in the plugin module and make sure it extends ``org." "godotengine.godot.plugin.GodotPlugin``. At runtime, it will be used to " @@ -69133,31 +69996,31 @@ msgid "" "load, initialize and run the plugin." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:70 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:68 msgid "Update the plugin ``AndroidManifest.xml`` file:" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:72 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:70 msgid "Open the plugin ``AndroidManifest.xml`` file." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:74 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:72 msgid "Add the ```` tag if it's missing." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:76 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:74 msgid "" "In the ```` tag, add a ```` tag setup as follow::" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:82 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:80 msgid "" "Where ``PluginName`` is the name of the plugin, and ``plugin.init." "ClassFullName`` is the full name (package + class name) of the plugin " "loading class." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:84 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:82 msgid "" "Add the remaining logic for your plugin and run the ``gradlew build`` " "command to generate the plugin's ``aar`` file. The build will likely " @@ -69166,39 +70029,122 @@ msgid "" "your users with." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:87 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:86 msgid "" -"**Note:** The plugin's ``aar`` filename must match the following pattern: " +"It's recommended that the ``aar`` filename matches the following pattern: " "``[PluginName]*.aar`` where ``PluginName`` is the name of the plugin in " -"camel case (e.g: ``GodotPayment.release.aar``)." +"PascalCase (e.g.: ``GodotPayment.release.aar``)." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:91 -msgid "Loading and using a Android plugin" -msgstr "" - -#: ../../docs/tutorials/plugins/android/android_plugin.rst:93 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:88 msgid "" -"Once you have access to the plugin ``aar`` file, move it to the Godot " -"project ``res://android/plugins`` directory." +"Create a Godot Android Plugin configuration file to help the system detect " +"and load your plugin:" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:95 -msgid "From your script:" -msgstr "" - -#: ../../docs/tutorials/plugins/android/android_plugin.rst:103 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:90 msgid "" -"**When exporting the project**, you need to add the plugin's name to the " -"``Custom Template`` -> ``Plugins`` section. If trying to add multiple " -"plugins, separate their names by a comma (``,``)." +"The configuration file extension must be ``gdap`` (e.g.: ``MyPlugin.gdap``)." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:107 -msgid "Bundling GDNative resources" +#: ../../docs/tutorials/plugins/android/android_plugin.rst:92 +msgid "The configuration file format is as follow::" +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:106 +msgid "The ``config`` section and fields are required and defined as follow:" msgstr "" #: ../../docs/tutorials/plugins/android/android_plugin.rst:108 +msgid "**name**: name of the plugin" +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:110 +msgid "" +"**binary_type**: can be either ``local`` or ``remote``. The type affects the " +"**binary** field" +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:112 +msgid "**binary**:" +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:114 +msgid "" +"if **binary_type** is ``local``, then this should be the filepath of the " +"plugin ``aar`` file." +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:116 +msgid "" +"The filepath can be relative (e.g.: ``MyPlugin.aar``) in which case it's " +"relative to the ``res://android/plugins`` directory." +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:118 +msgid "The filepath can be absolute: ``res://some_path/MyPlugin.aar``." +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:120 +msgid "" +"if **binary_type** is ``remote``, then this should be a declaration for a " +"`remote gradle binary `_ (e.g.: ``org.godot.example:my-" +"plugin:0.0.0``)." +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:122 +msgid "" +"The ``dependencies`` section and fields are optional and defined as follow:" +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:124 +msgid "" +"**local**: contains a list of filepaths to the local ``.aar`` binary files " +"the plugin depends on. Similarly to the ``binary`` field (when the " +"``binary_type`` is ``local``), the local binaries' filepaths can be relative " +"or absolute." +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:126 +msgid "" +"**remote**: contains a list of remote binary gradle dependencies for the " +"plugin." +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:128 +msgid "" +"**custom_maven_repos**: contains a list of URLs specifying the custom maven " +"repositories required for the plugin's dependencies" +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:131 +msgid "Loading and using a Android plugin" +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:133 +msgid "" +"Move the plugin configuration file (e.g.: ``MyPlugin.gdap``) and, if any, " +"its local binary (e.g.: ``MyPlugin.aar``) and dependencies to the Godot " +"project's ``res://android/plugins`` directory." +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:135 +msgid "" +"The Godot editor will automatically parse all ``.gdap`` files in the ``res://" +"android/plugins`` directory and show a list of detected and toggleable " +"plugins in the Android export presets window under the **Plugins** section." +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:139 +msgid "From your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:149 +msgid "Bundling GDNative resources" +msgstr "" + +#: ../../docs/tutorials/plugins/android/android_plugin.rst:150 msgid "" "A Android plugin can define and provide C/C++ GDNative resources, either to " "provide and/or access functionality from the game logic. The GDNative " @@ -69206,13 +70152,13 @@ msgid "" "distribution and deployment process:" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:111 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:153 msgid "" "The shared libraries (``.so``) for the defined GDNative libraries will be " "automatically bundled by the ``aar`` build system." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:113 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:155 msgid "" "Godot ``*.gdnlib`` and ``*.gdns`` resource files must be manually defined in " "the plugin ``assets`` directory. The recommended path for these resources " @@ -69220,7 +70166,7 @@ msgid "" "[PluginName]/``." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:116 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:158 msgid "" "For GDNative libraries, the plugin singleton object must override the ``org." "godotengine.godot.plugin.GodotPlugin::getPluginGDNativeLibrariesPaths()`` " @@ -69230,44 +70176,44 @@ msgid "" "them to load and initialize the bundled GDNative libraries." msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:121 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:163 msgid "Reference implementations" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:122 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:164 msgid "" -"`Godot Oculus Mobile plugin `_" +"`Godot Oculus Mobile plugin `_" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:124 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:166 msgid "" -"`Bundled gdnative resources `_" +"`Bundled gdnative resources `_" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:126 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:168 msgid "" -"`Godot Payment plugin `_" +"`Godot Payment plugin `_" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:130 -#: ../../docs/development/compiling/compiling_for_windows.rst:216 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:172 +#: ../../docs/development/compiling/compiling_for_windows.rst:223 #: ../../docs/development/compiling/compiling_for_android.rst:200 -#: ../../docs/development/editor/creating_icons.rst:70 +#: ../../docs/development/editor/creating_icons.rst:92 msgid "Troubleshooting" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:133 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:175 msgid "Godot crashes upon load" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:135 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:177 msgid "Check ``adb logcat`` for possible problems, then:" msgstr "" -#: ../../docs/tutorials/plugins/android/android_plugin.rst:137 +#: ../../docs/tutorials/plugins/android/android_plugin.rst:179 msgid "" "Check that the methods used in the Java singleton only use simple Java " "datatypes. More complex datatypes are not supported." @@ -69279,29 +70225,27 @@ msgstr "" #: ../../docs/tutorials/platform/android_in_app_purchases.rst:6 msgid "" -"Godot engine has integrated GooglePaymentsV3 module with which we can " +"Godot Engine has integrated GooglePaymentsV3 module with which we can " "implement in-app purchases in our game." msgstr "" #: ../../docs/tutorials/platform/android_in_app_purchases.rst:8 msgid "" -"The Godot engine demo project repository has an android-iap example project. " -"It includes a gdscript interface for android IAP." -msgstr "" - -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:10 -msgid "" -"Check the repository here https://github.com/godotengine/godot-demo-projects" +"The `Godot demo projects repository `__ has an `android_iap `__ example project. It includes " +"a GDScript interface for Android IAPs." msgstr "" #: ../../docs/tutorials/platform/android_in_app_purchases.rst:12 -msgid "Find the iap.gd script in" +msgid "Find the ``iap.gd`` script in:" msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:19 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:18 msgid "" -"Add it to the Autoload list and name it as IAP so that we can reference it " -"anywhere in the game." +"Copy it to your project, then open the Project Settings, add it to the " +"AutoLoad list and name it as IAP so that we can reference it anywhere in the " +"game." msgstr "" #: ../../docs/tutorials/platform/android_in_app_purchases.rst:22 @@ -69311,74 +70255,80 @@ msgstr "" #: ../../docs/tutorials/platform/android_in_app_purchases.rst:24 msgid "" "When starting our game, we will need to get the item details from Google " -"such as the product price, description and localized price string etc." +"such as the product price, description, localized price string, etc." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:40 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:41 msgid "" "We can use the IAP details to display the title, price and/or description on " "our shop scene." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:43 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:44 msgid "Check if user purchased an item" msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:45 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:46 msgid "" "When starting our game, we can check if the user has purchased any product. " -"YOU SHOULD DO THIS ONLY AFTER 2/3 SECONDS AFTER YOUR GAME IS LOADED. If we " -"do this as the first thing when the game is launched, IAP might not be " +"**You should do this only after 2/3 seconds after your game is loaded.** If " +"we do this as the first thing when the game is launched, IAPs might not be " "initialized and our game will crash on start." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:58 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:59 msgid "" -"Google IAP policy says the game should restore the user's purchases if the " -"user replaces their phone or reinstalls the same app. We can use the above " -"code to check what products the user has purchased and we can make our game " -"respond accordingly." +"The Google IAP policy says the game should restore the user's purchases if " +"the user replaces their phone or reinstalls the same app. We can use the " +"above code to check what products the user has purchased and we can make our " +"game respond accordingly." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:61 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:62 msgid "Simple Purchase" msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:63 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:64 msgid "We can put this purchase logic on a product's buy button." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:78 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:79 msgid "" "We can also implement other signals for the purchase flow and improve the " "user experience as you needed." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:80 -msgid "``purchase_fail`` - When the purchase is failed due to any reason" +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:81 +msgid "``purchase_fail``: When the purchase is failed due to any reason." msgstr "" #: ../../docs/tutorials/platform/android_in_app_purchases.rst:82 -msgid "``purchase_cancel`` - When the user cancels the purchase" +msgid "``purchase_cancel``: When the user cancels the purchase." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:84 -msgid "``purchase_owned`` - When the user already bought the product earlier" +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:83 +msgid "``purchase_owned``: When the user already bought the product earlier." +msgstr "" + +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:86 +msgid "Consumables and Non-Consumables" msgstr "" #: ../../docs/tutorials/platform/android_in_app_purchases.rst:88 -msgid "Consumables and Non-Consumables" +msgid "There are two types of products - consumables and non-consumables:" msgstr "" #: ../../docs/tutorials/platform/android_in_app_purchases.rst:90 msgid "" -"There are two types of products - consumables and non-consumables. " -"**Consumables** are purchased and used, for eg: healing potions which can be " -"purchased again and again. **Non-consumables** are one time purchases, for " -"eg: Level packs." +"**Consumables** are purchased and used, for example, healing potions which " +"can be purchased again and again." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:94 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:91 +msgid "**Non-consumables** are one time purchases, for example, level packs." +msgstr "" + +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:93 msgid "" "Google doesn't have this separation in their dashboard. If our product is a " "consumable, and if a user has purchased it, it will not be available for " @@ -69386,52 +70336,52 @@ msgid "" "consumables and don't call consume for your non-consumables." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:104 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:103 msgid "" "If our game has only consumables, we don't have to do this. We can set it to " "consume the item automatically after a purchase." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:110 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:109 msgid "If our game has only non-consumables, we can" msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:116 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:115 msgid "We should set the auto consume value only once when the game starts." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:119 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:118 msgid "Testing" msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:121 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:120 msgid "" -"If we add a gmail id as a tester in Google dashboard, that tester can " -"purchase items and they will not be charged. Another way to test IAP is " +"If we add a Gmail ID as a tester in the Google Play dashboard, that tester " +"can purchase items and they will not be charged. Another way to test IAP is " "using redeem codes generated by us for our game because the purchase flow is " "the same." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:123 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:122 msgid "" "Third way of testing is in development side. If we put the product ids as " "shown below, we will get a static fixed response according to the product " -"id. This is a quick way of testing things before going to the dashboard." +"ID. This is a quick way of testing things before going to the dashboard." msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:125 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:124 msgid "android.test.purchased" msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:126 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:125 msgid "android.test.canceled" msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:127 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:126 msgid "android.test.refunded" msgstr "" -#: ../../docs/tutorials/platform/android_in_app_purchases.rst:128 +#: ../../docs/tutorials/platform/android_in_app_purchases.rst:127 msgid "android.test.item_unavailable" msgstr "" @@ -70549,72 +71499,129 @@ msgid "Console support in Godot" msgstr "" #: ../../docs/tutorials/platform/consoles.rst:7 -msgid "Official support" +msgid "Console publishing process" msgstr "" #: ../../docs/tutorials/platform/consoles.rst:9 msgid "" -"Godot currently does not officially support consoles (except the Xbox One " -"using UWP)." +"Regardless of the engine used to create the game, the process to publish a " +"game to a console platform is as follows:" msgstr "" #: ../../docs/tutorials/platform/consoles.rst:12 -msgid "The reasons for this are:" +msgid "" +"Register a developer account on the console manufacturer's website, then " +"sign NDAs and publishing contracts. This requires you to have a registered " +"legal entity." msgstr "" -#: ../../docs/tutorials/platform/consoles.rst:14 +#: ../../docs/tutorials/platform/consoles.rst:15 +msgid "" +"Gain access to the publishing platform by passing the acceptance process. " +"This can take up to several months. Note that this step is significantly " +"easier if an established publisher is backing your game. Nintendo is " +"generally known to be more accepting of smaller developers, but this is not " +"guaranteed." +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:19 +msgid "" +"Get access to developer tools and order a console specially made for " +"developers (*devkit*). The cost of those devkits is confidential." +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:21 +msgid "Port the engine to the console platform or pay a company to do it." +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:22 +msgid "" +"To be published, your game needs to be rated in the regions you'd like to " +"sell it in. For example, in North America, the `ESRB `__ handles game ratings. In Europe, this is done by `PEGI `__. Indie developers can generally get a rating for cheaper compared " +"to more established developers." +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:28 +msgid "" +"Due to the complexity of the process, the budget to publish a game by " +"yourself on a single console often exceeds $1,000 (this is a rough figure)." +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:32 +msgid "Official support" +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:34 +msgid "" +"Godot currently does not officially support consoles. The reasons for this " +"are:" +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:36 msgid "" "To develop for consoles, one must be licensed as a company. As an open " "source project, Godot does not have such a legal figure." msgstr "" -#: ../../docs/tutorials/platform/consoles.rst:16 +#: ../../docs/tutorials/platform/consoles.rst:38 msgid "" "Console SDKs are secret and covered by non-disclosure agreements. Even if we " "could get access to them, we could not publish the platform-specific code " "under an open source license." msgstr "" -#: ../../docs/tutorials/platform/consoles.rst:19 +#: ../../docs/tutorials/platform/consoles.rst:41 msgid "" "Consoles require specialized hardware to develop for, so regular individuals " "can't create games for them anyway." msgstr "" -#: ../../docs/tutorials/platform/consoles.rst:22 +#: ../../docs/tutorials/platform/consoles.rst:44 msgid "" "However, it is still possible to port your games to consoles thanks to " "services provided by third-party companies." msgstr "" -#: ../../docs/tutorials/platform/consoles.rst:26 +#: ../../docs/tutorials/platform/consoles.rst:49 +msgid "" +"In practice, the process is quite similar to Unity and Unreal Engine, except " +"that you need to contact a third-party developer to handle the porting " +"process. In other words, there is no engine that is legally allowed to " +"distribute console export templates without requiring the user to prove that " +"they are a licensed console developer. Doing so would violate the console " +"manufacturer's NDA." +msgstr "" + +#: ../../docs/tutorials/platform/consoles.rst:57 msgid "Third-party support" msgstr "" -#: ../../docs/tutorials/platform/consoles.rst:28 +#: ../../docs/tutorials/platform/consoles.rst:59 msgid "" "Console ports of Godot are offered by third-party companies (which have " "ported Godot on their own). These companies also offer publishing of your " "games to various consoles." msgstr "" -#: ../../docs/tutorials/platform/consoles.rst:32 +#: ../../docs/tutorials/platform/consoles.rst:63 msgid "Following is the list of providers:" msgstr "" -#: ../../docs/tutorials/platform/consoles.rst:34 +#: ../../docs/tutorials/platform/consoles.rst:65 msgid "" "`Lone Wolf Technology `_ offers Switch, " "PS4 and Xbox One porting and publishing of Godot games." msgstr "" -#: ../../docs/tutorials/platform/consoles.rst:36 +#: ../../docs/tutorials/platform/consoles.rst:67 msgid "" "`Pineapple Works `_ offers Switch and Xbox One " "porting and publishing of Godot games." msgstr "" -#: ../../docs/tutorials/platform/consoles.rst:39 +#: ../../docs/tutorials/platform/consoles.rst:70 msgid "" "If your company offers porting and/or publishing services for Godot games, " "feel free to `open an issue or pull request ` to understand which engine APIs " -"support multiple thread access." +"`doc_thread_safe_apis` documentation to understand which engine APIs support " +"multiple thread access." msgstr "" -#: ../../docs/tutorials/threads/using_multiple_threads.rst:57 +#: ../../docs/tutorials/threads/using_multiple_threads.rst:58 msgid "" "When processing your own data or calling your own functions, as a rule, try " "to avoid accessing the same data directly from different threads. You may " @@ -70674,7 +71681,7 @@ msgid "" "accessing a piece of data from different threads." msgstr "" -#: ../../docs/tutorials/threads/using_multiple_threads.rst:63 +#: ../../docs/tutorials/threads/using_multiple_threads.rst:64 msgid "" "When calling :ref:`Mutex.lock()`, a thread ensures " "that all other threads will be blocked (put on suspended state) if they try " @@ -70683,15 +71690,15 @@ msgid "" "proceed with the lock (but only one at a time)." msgstr "" -#: ../../docs/tutorials/threads/using_multiple_threads.rst:69 +#: ../../docs/tutorials/threads/using_multiple_threads.rst:70 msgid "Here is an example of using a Mutex:" msgstr "" -#: ../../docs/tutorials/threads/using_multiple_threads.rst:101 +#: ../../docs/tutorials/threads/using_multiple_threads.rst:102 msgid "Semaphores" msgstr "" -#: ../../docs/tutorials/threads/using_multiple_threads.rst:103 +#: ../../docs/tutorials/threads/using_multiple_threads.rst:104 msgid "" "Sometimes you want your thread to work *\"on demand\"*. In other words, tell " "it when to work and let it suspend when it isn't doing anything. For this, :" @@ -70700,7 +71707,7 @@ msgid "" "until some data arrives." msgstr "" -#: ../../docs/tutorials/threads/using_multiple_threads.rst:109 +#: ../../docs/tutorials/threads/using_multiple_threads.rst:110 msgid "" "The main thread, instead, uses :ref:`Semaphore." "post()` to signal that data is ready to be " @@ -70708,7 +71715,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/threads/thread_safe_apis.rst:4 -msgid "Thread safe APIs" +msgid "Thread-safe APIs" msgstr "" #: ../../docs/tutorials/threads/thread_safe_apis.rst:9 @@ -70725,9 +71732,9 @@ msgstr "" #: ../../docs/tutorials/threads/thread_safe_apis.rst:17 msgid "" -":ref:`Global Scope` singletons are all thread safe. " +":ref:`Global Scope` singletons are all thread-safe. " "Accessing servers from threads is supported (for VisualServer and Physics " -"servers, ensure threaded or thread safe operation is enabled in the project " +"servers, ensure threaded or thread-safe operation is enabled in the project " "settings!)." msgstr "" @@ -70740,7 +71747,7 @@ msgstr "" #: ../../docs/tutorials/threads/thread_safe_apis.rst:24 msgid "" -"Interacting with the active scene tree is **NOT** thread safe. Make sure to " +"Interacting with the active scene tree is **NOT** thread-safe. Make sure to " "use mutexes when sending data between threads. If you want to call functions " "from a thread, the *call_deferred* function may be used:" msgstr "" @@ -70781,10 +71788,14 @@ msgstr "" #: ../../docs/tutorials/threads/thread_safe_apis.rst:60 msgid "" -"Modifying a unique resource from multiple threads is not supported, but " -"loading them on threads or handling a reference is perfectly supported. " -"Scenes, textures, meshes, etc. Can be loaded and manipulated on threads, " -"then added to the active scene in the main thread." +"Modifying a unique resource from multiple threads is not supported. However " +"handling references on multiple threads is supported, hence loading " +"resources on a thread is as well - scenes, textures, meshes, etc - can be " +"loaded and manipulated on a thread and then added to the active scene on the " +"main thread. The limitation here is as described above, one must be careful " +"not to load the same resource from multiple threads at once, therefore it is " +"easiest to use **one** thread for loading and modifying resources, and then " +"the main thread for adding them." msgstr "" #: ../../docs/tutorials/content/procedural_geometry/index.rst:2 @@ -71959,25 +72970,33 @@ msgid "" "animated in the regular _process loop, to further fixes in the frame timer." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:44 +#: ../../docs/tutorials/misc/jitter_stutter.rst:45 +msgid "" +"You can use physics interpolation to mitigate physics-related jittering. See " +"`lawnjelly's smoothing-addon `__ for an add-on that can be dropped into any project to enable " +"physics interpolation." +msgstr "" + +#: ../../docs/tutorials/misc/jitter_stutter.rst:50 msgid "Stutter" msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:46 +#: ../../docs/tutorials/misc/jitter_stutter.rst:52 msgid "" "Stutter may happen due to two different reasons. The first, and most obvious " "one, is the game not being able to keep full framerate performance. Solving " "this is game specific and will require optimization." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:49 +#: ../../docs/tutorials/misc/jitter_stutter.rst:55 msgid "" "The second is more complicated, because it is often not associated to the " "engine or game but the underlying operating system. Here is some information " "regarding stutter on different OSs." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:55 +#: ../../docs/tutorials/misc/jitter_stutter.rst:61 msgid "" "Windows is known to cause stutter in windowed games. This mostly depends on " "the hardware installed, drivers version and processes running in parallel (e." @@ -71986,7 +73005,7 @@ msgid "" "Normal\". This helps considerably but may not completely eliminate stutter." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:60 +#: ../../docs/tutorials/misc/jitter_stutter.rst:66 msgid "" "Eliminating this completely requires giving your game full privileges to " "become \"time critical\", which is not advised. Some games may do it, but it " @@ -71995,17 +73014,17 @@ msgid "" "window, e.g. puzzle games, will usually not exhibit this problem anyway)." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:64 +#: ../../docs/tutorials/misc/jitter_stutter.rst:70 msgid "" "For fullscreen, Windows gives special priority to the game so stutter is no " "longer visible and very rare. This is how most games are played." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:68 +#: ../../docs/tutorials/misc/jitter_stutter.rst:74 msgid "Linux (X11)" msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:70 +#: ../../docs/tutorials/misc/jitter_stutter.rst:76 msgid "" "Stutter may be visible on Desktop Linux, but this is usually associated with " "different video drivers and compositors. Nouveau drivers often exhibit this, " @@ -72014,20 +73033,20 @@ msgid "" "rule it out as the cause." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:74 +#: ../../docs/tutorials/misc/jitter_stutter.rst:80 msgid "" "There is no workaround for driver or compositor stuttering other than " "reporting it as an issue to the driver or compositor developers." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:80 +#: ../../docs/tutorials/misc/jitter_stutter.rst:86 msgid "" "Generally, macOS is stutter-free, although recently some bugs were reported " "when running on fullscreen (this is a macOS bug). If you have a machine " "exhibiting this behavior, please let us know." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:86 +#: ../../docs/tutorials/misc/jitter_stutter.rst:92 msgid "" "Generally, Android is stutter and jitter-free because the running activity " "gets all the priority. That said, there may be problematic devices (older " @@ -72035,18 +73054,18 @@ msgid "" "let us know." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:92 +#: ../../docs/tutorials/misc/jitter_stutter.rst:98 msgid "" "iOS devices are generally stutter-free, but older devices running newer " "versions of the operating system may exhibit problems. This is generally " "unavoidable." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:96 +#: ../../docs/tutorials/misc/jitter_stutter.rst:102 msgid "Reporting stutter or jitter problems" msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:98 +#: ../../docs/tutorials/misc/jitter_stutter.rst:104 msgid "" "If you are reporting a stutter or jitter problem (opening an issue) not " "caused by any of the above reasons, please specify very clearly all the " @@ -72054,7 +73073,7 @@ msgid "" "This may help to better troubleshoot it." msgstr "" -#: ../../docs/tutorials/misc/jitter_stutter.rst:101 +#: ../../docs/tutorials/misc/jitter_stutter.rst:107 msgid "" "Also make sure to use the correct term (jitter or stutter) based on the " "exhibited behavior. This will help understand your issue much faster. " @@ -73230,7 +74249,18 @@ msgid "" "you run the game, it will spin counter-clockwise." msgstr "" -#: ../../docs/tutorials/misc/running_code_in_the_editor.rst:101 +#: ../../docs/tutorials/misc/running_code_in_the_editor.rst:102 +msgid "Editing variables" +msgstr "" + +#: ../../docs/tutorials/misc/running_code_in_the_editor.rst:103 +msgid "" +"Add and export a variable speed to the script. The function set_speed after " +"\"setget\" is executed with your input to change the variable. Modify " +"``_process()`` to include the rotation speed." +msgstr "" + +#: ../../docs/tutorials/misc/running_code_in_the_editor.rst:125 msgid "" "Code from other nodes doesn't run in the editor. Your access to other nodes " "is limited. You can access the tree and nodes, and their default properties, " @@ -73239,7 +74269,23 @@ msgid "" "all." msgstr "" -#: ../../docs/tutorials/misc/running_code_in_the_editor.rst:103 +#: ../../docs/tutorials/misc/running_code_in_the_editor.rst:130 +msgid "" +"You can instantiate packed scenes normally and add them to the scene " +"currently opened in the editor. Be sure to set the scene root as the owner " +"of all the nodes created this way or the nodes won't be visible in the " +"editor." +msgstr "" + +#: ../../docs/tutorials/misc/running_code_in_the_editor.rst:132 +msgid "If you are using ``tool``:" +msgstr "" + +#: ../../docs/tutorials/misc/running_code_in_the_editor.rst:142 +msgid "If you are using :ref:`EditorScript`:" +msgstr "" + +#: ../../docs/tutorials/misc/running_code_in_the_editor.rst:153 msgid "" "Using ``tool`` improperly can yield many errors. It is advised to first " "write the code how you want it, and only then add the ``tool`` keyword to " @@ -74985,6 +76031,60 @@ msgid "" msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +msgid "Overriding the build options" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:201 +msgid "Using a file" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:203 +msgid "" +"The default ``custom.py`` file can be created at the root of the Godot " +"Engine source to initialize any SCons build options passed via the command " +"line:" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:215 +msgid "" +"You can also disable some of the builtin modules before compiling, saving " +"some time it takes to build the engine, see :ref:`doc_optimizing_for_size` " +"page for more details." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:218 +msgid "" +"Another custom file can be specified explicitly with the ``profile`` command " +"line option, both overriding the default build configuration:" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:225 +msgid "" +"Build options set from the file can be overridden by the command line " +"options." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +msgid "It's also possible to override the options conditionally:" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:243 +msgid "Using the SCONSFLAGS" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:245 +msgid "" +"``SCONSFLAGS`` is an environment variable which is used by the SCons to set " +"the options automatically without having to supply them via the command line." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:248 +msgid "" +"For instance, you may want to build Godot in parallel with the " +"aforementioned ``-j`` option for all the future builds:" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:267 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -74992,20 +76092,20 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:203 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:272 msgid "" "If you download the official export templates package and unzip it, you will " "notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:226 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:295 msgid "" "To create those yourself, follow the instructions detailed for each platform " "in this same tutorial section. Each platform explains how to create its own " "template." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:230 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:299 msgid "" "The ``version.txt`` file should contain the corresponding Godot version " "identifier. This file is used to install export templates in a version-" @@ -75017,7 +76117,7 @@ msgid "" "com/godotengine/godot/blob/master/version.py>`__." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:238 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:307 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " "convenient host platform for cross-compilation, since you can cross-compile " @@ -75055,7 +76155,7 @@ msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:20 msgid "" -"`SCons 3.0 `_ build system. If using Visual Studio " +"`SCons 3.0 `_ build system. If using Visual Studio " "2019, you need at least SCons 3.1.1." msgstr "" @@ -75096,24 +76196,36 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:44 -msgid "Setting up SCons" +msgid "Setting up Python" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:46 msgid "" -"First, make sure to enable the option to add Python to the ``PATH`` in the " -"Python installer. The SCons installer should then detect and use the " -"existing Python installation." +"First you need to install Python 3.5 or newer. Make sure to enable the " +"option to add Python to the ``PATH`` in the Python installer. The SCons " +"installer should then detect and use the existing Python installation." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:50 +#: ../../docs/development/compiling/compiling_for_windows.rst:51 +msgid "Setting up SCons" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_windows.rst:53 +msgid "To install SCons open the command prompt and run the following command." +msgstr "" + +#: ../../docs/development/compiling/compiling_for_windows.rst:55 +msgid "``python -m pip install scons``" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_windows.rst:57 msgid "" "To check whether you have installed Python and SCons correctly, you can type " "``python --version`` and ``scons --version`` into a command prompt (``cmd." "exe``)." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:54 +#: ../../docs/development/compiling/compiling_for_windows.rst:61 msgid "" "If the commands above don't work, make sure to add Python to your ``PATH`` " "environment variable after installing it, then check again. You can do so by " @@ -75121,23 +76233,23 @@ msgid "" "the ``PATH``." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:62 +#: ../../docs/development/compiling/compiling_for_windows.rst:69 msgid "Installing Visual Studio caveats" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:64 +#: ../../docs/development/compiling/compiling_for_windows.rst:71 msgid "" "If installing Visual Studio 2017 or 2019, make sure to enable **C++** in the " "list of workflows to install." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:67 +#: ../../docs/development/compiling/compiling_for_windows.rst:74 msgid "" "If installing Visual Studio 2015, make sure to run a **Custom** installation " "instead of **Typical** and select **C++** as a language there." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:70 +#: ../../docs/development/compiling/compiling_for_windows.rst:77 msgid "" "If you've already made the mistake of installing Visual Studio without C++ " "support, run the installer again; it should present you a **Modify** button. " @@ -75145,28 +76257,28 @@ msgid "" "**Repair** option, which won't let you install C++ tools." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:76 +#: ../../docs/development/compiling/compiling_for_windows.rst:83 msgid "Downloading Godot's source" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:78 +#: ../../docs/development/compiling/compiling_for_windows.rst:85 msgid "" "Godot's source code is `hosted on GitHub `_. Downloading it (cloning) using `Git `_ is " "recommended." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:81 +#: ../../docs/development/compiling/compiling_for_windows.rst:88 msgid "" "The tutorial will assume from now on that you placed the source code in ``C:" "\\godot``." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:88 +#: ../../docs/development/compiling/compiling_for_windows.rst:95 msgid "Selecting a compiler" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:90 +#: ../../docs/development/compiling/compiling_for_windows.rst:97 msgid "" "SCons will automatically find and use an existing Visual Studio " "installation. If you do not have Visual Studio installed, it will attempt to " @@ -75174,7 +76286,7 @@ msgid "" "use MinGW, pass ``use_mingw=yes`` to the SCons command line." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:95 +#: ../../docs/development/compiling/compiling_for_windows.rst:102 msgid "" "During development, using the Visual Studio compiler is usually a better " "idea, as it links the Godot binary much faster than MinGW. However, MinGW " @@ -75182,34 +76294,34 @@ msgid "" "below), making it a better choice for production use." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:101 +#: ../../docs/development/compiling/compiling_for_windows.rst:108 msgid "Running SCons" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:103 +#: ../../docs/development/compiling/compiling_for_windows.rst:110 msgid "" "After opening a command prompt, change to the root directory of the engine " "source code (using ``cd``) and type::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:108 +#: ../../docs/development/compiling/compiling_for_windows.rst:115 msgid "You can specify a number of CPU threads to use to speed up the build::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:112 +#: ../../docs/development/compiling/compiling_for_windows.rst:119 msgid "" "In general, it is OK to have at least as many threads compiling Godot as you " "have cores in your CPU, if not one or two more. Feel free to add the ``-j`` " "option to any SCons command you see below." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:116 +#: ../../docs/development/compiling/compiling_for_windows.rst:123 msgid "" "When compiling with multiple CPU threads, SCons may warn about pywin32 being " "missing. You can safely ignore this warning." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:119 +#: ../../docs/development/compiling/compiling_for_windows.rst:126 msgid "" "If all goes well, the resulting binary executable will be placed in ``C:" "\\godot\\bin\\`` with the name ``godot.windows.tools.32.exe`` or ``godot." @@ -75218,13 +76330,13 @@ msgid "" "``bits=32``." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:125 +#: ../../docs/development/compiling/compiling_for_windows.rst:132 msgid "" "This executable file contains the whole engine and runs without any " "dependencies. Running it will bring up the Project Manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:128 +#: ../../docs/development/compiling/compiling_for_windows.rst:135 #: ../../docs/development/compiling/compiling_for_x11.rst:117 msgid "" "If you are compiling Godot for production use, then you can make the final " @@ -75232,7 +76344,7 @@ msgid "" "``target=release_debug``." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:132 +#: ../../docs/development/compiling/compiling_for_windows.rst:139 msgid "" "If you are compiling Godot with MinGW, you can make the binary even smaller " "and faster by adding the SCons option ``use_lto=yes``. As link-time " @@ -75240,7 +76352,7 @@ msgid "" "available RAM while compiling." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:137 +#: ../../docs/development/compiling/compiling_for_windows.rst:144 #: ../../docs/development/compiling/compiling_for_x11.rst:126 #: ../../docs/development/compiling/compiling_for_osx.rst:42 msgid "" @@ -75249,30 +76361,30 @@ msgid "" "by creating a file called ``._sc_`` or ``_sc_`` in the ``bin/`` folder." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:143 +#: ../../docs/development/compiling/compiling_for_windows.rst:150 msgid "Development in Visual Studio or other IDEs" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:145 +#: ../../docs/development/compiling/compiling_for_windows.rst:152 msgid "" "For most projects, using only scripting is enough but when development in C+" "+ is needed, for creating modules or extending the engine, working with an " "IDE is usually desirable." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:149 +#: ../../docs/development/compiling/compiling_for_windows.rst:156 msgid "" "You can create a Visual Studio solution via SCons by running SCons with the " "``vsproj=yes`` parameter, like this::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:154 +#: ../../docs/development/compiling/compiling_for_windows.rst:161 msgid "" "You will be able to open Godot's source in a Visual Studio solution now, and " "able to build Godot using Visual Studio's **Build** button." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:157 +#: ../../docs/development/compiling/compiling_for_windows.rst:164 msgid "" "If you need to edit the build commands, they are located in \"Godot\" " "project settings, NMAKE sheet. SCons is called at the end of the commands. " @@ -75281,11 +76393,11 @@ msgid "" "they are equivalent." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:164 +#: ../../docs/development/compiling/compiling_for_windows.rst:171 msgid "Cross-compiling for Windows from other operating systems" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:166 +#: ../../docs/development/compiling/compiling_for_windows.rst:173 msgid "" "If you are a Linux or macOS user, you need to install `MinGW-w64 `__, which typically comes in 32-bit and 64-bit " @@ -75293,98 +76405,98 @@ msgid "" "some known ones:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:172 +#: ../../docs/development/compiling/compiling_for_windows.rst:179 #: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Arch Linux**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:172 +#: ../../docs/development/compiling/compiling_for_windows.rst:179 msgid "Install `mingw-w64-gcc from the AUR`_." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:174 +#: ../../docs/development/compiling/compiling_for_windows.rst:181 #: ../../docs/development/compiling/compiling_for_x11.rst:45 msgid "**Debian** / **Ubuntu**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:178 +#: ../../docs/development/compiling/compiling_for_windows.rst:185 #: ../../docs/development/compiling/compiling_for_x11.rst:50 msgid "**Fedora**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:183 +#: ../../docs/development/compiling/compiling_for_windows.rst:190 msgid "**macOS**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:187 +#: ../../docs/development/compiling/compiling_for_windows.rst:194 #: ../../docs/development/compiling/compiling_for_x11.rst:67 msgid "**Mageia**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:195 +#: ../../docs/development/compiling/compiling_for_windows.rst:202 msgid "" "Before attempting the compilation, SCons will check for the following " "binaries in your ``PATH`` environment variable::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:201 +#: ../../docs/development/compiling/compiling_for_windows.rst:208 msgid "" "If the binaries are not located in the ``PATH`` (e.g. ``/usr/bin``), you can " "define the following environment variables to give a hint to the build " "system::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:208 +#: ../../docs/development/compiling/compiling_for_windows.rst:215 msgid "" "To make sure you are doing things correctly, executing the following in the " "shell should result in a working compiler (the version output may differ " "based on your system)::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:218 +#: ../../docs/development/compiling/compiling_for_windows.rst:225 msgid "" "Cross-compiling from some Ubuntu versions may lead to `this bug `_, due to a default configuration " "lacking support for POSIX threading." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:222 +#: ../../docs/development/compiling/compiling_for_windows.rst:229 msgid "" "You can change that configuration following those instructions, for 64-bit::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:230 +#: ../../docs/development/compiling/compiling_for_windows.rst:237 msgid "And for 32-bit::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:238 +#: ../../docs/development/compiling/compiling_for_windows.rst:245 msgid "Creating Windows export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:240 +#: ../../docs/development/compiling/compiling_for_windows.rst:247 msgid "" "Windows export templates are created by compiling Godot without the editor, " "with the following flags::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:248 +#: ../../docs/development/compiling/compiling_for_windows.rst:255 msgid "" "If you plan on replacing the standard export templates, copy these to the " "following location, replacing ```` with the version identifier " "(such as ``3.1.1.stable`` or ``3.2.dev``)::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:254 +#: ../../docs/development/compiling/compiling_for_windows.rst:261 msgid "With the following names::" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:261 +#: ../../docs/development/compiling/compiling_for_windows.rst:268 msgid "" "However, if you are using custom modules or custom engine code, you may " "instead want to configure your binaries as custom export templates here:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:267 +#: ../../docs/development/compiling/compiling_for_windows.rst:274 msgid "" "You don't need to copy them in this case, just reference the resulting files " "in the ``bin\\`` directory of your Godot source folder, so the next time you " @@ -75512,11 +76624,30 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:132 +#: ../../docs/development/compiling/compiling_for_osx.rst:57 +msgid "Compiling a headless/server build" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:134 +#: ../../docs/development/compiling/compiling_for_osx.rst:59 +msgid "" +"To compile a *headless* build which provides editor functionality to export " +"projects in an automated manner, use::" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:139 +#: ../../docs/development/compiling/compiling_for_osx.rst:64 +msgid "" +"To compile a *server* build which is optimized to run dedicated game " +"servers, use::" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:145 #: ../../docs/development/compiling/compiling_for_web.rst:21 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:134 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "Linux binaries usually won't run on distributions that are older than the " "distribution they were built on. If you wish to distribute binaries that " @@ -75525,78 +76656,78 @@ msgid "" "a suitable build environment." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:142 +#: ../../docs/development/compiling/compiling_for_x11.rst:155 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:145 +#: ../../docs/development/compiling/compiling_for_x11.rst:158 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:152 +#: ../../docs/development/compiling/compiling_for_x11.rst:165 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:172 msgid "" "Note that cross-compiling for the opposite bits (64/32) as your host " "platform is not always straight-forward and might need a chroot environment." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:162 +#: ../../docs/development/compiling/compiling_for_x11.rst:175 msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:168 +#: ../../docs/development/compiling/compiling_for_x11.rst:181 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:177 +#: ../../docs/development/compiling/compiling_for_x11.rst:190 msgid "" "However, if you are writing your custom modules or custom C++ code, you " "might instead want to configure your binaries as custom export templates " "here:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:183 +#: ../../docs/development/compiling/compiling_for_x11.rst:196 msgid "" "You don't even need to copy them, you can just reference the resulting files " "in the ``bin/`` directory of your Godot source folder, so the next time you " "build, you automatically have the custom templates referenced." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:188 +#: ../../docs/development/compiling/compiling_for_x11.rst:201 msgid "Using Clang and LLD for faster development" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:190 +#: ../../docs/development/compiling/compiling_for_x11.rst:203 msgid "" "You can also use Clang and LLD to build Godot. This has two upsides compared " "to the default GCC + GNU ld setup:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:193 +#: ../../docs/development/compiling/compiling_for_x11.rst:206 msgid "" "LLD links Godot significantly faster compared to GNU ld or gold. This leads " "to faster iteration times." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:195 +#: ../../docs/development/compiling/compiling_for_x11.rst:208 msgid "Clang tends to give more useful error messages compared to GCC." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:197 +#: ../../docs/development/compiling/compiling_for_x11.rst:210 msgid "" "To do so, install Clang and the ``lld`` package from your distribution's " "package manager then use the following SCons command::" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:202 +#: ../../docs/development/compiling/compiling_for_x11.rst:215 msgid "" "It's still recommended to use GCC for production builds as they can be " "compiled using link-time optimization, making the resulting binaries smaller " @@ -75664,11 +76795,11 @@ msgid "" "optimized editor binary built with ``scons p=osx target=release_debug``::" msgstr "" -#: ../../docs/development/compiling/compiling_for_osx.rst:57 +#: ../../docs/development/compiling/compiling_for_osx.rst:70 msgid "Cross-compiling for macOS from Linux" msgstr "" -#: ../../docs/development/compiling/compiling_for_osx.rst:59 +#: ../../docs/development/compiling/compiling_for_osx.rst:72 msgid "" "It is possible to compile for macOS in a Linux environment (and maybe also " "in Windows using the Windows Subsystem for Linux). For that, you'll need to " @@ -75676,37 +76807,37 @@ msgid "" "to use macOS as a target. First, follow the instructions to install it:" msgstr "" -#: ../../docs/development/compiling/compiling_for_osx.rst:64 +#: ../../docs/development/compiling/compiling_for_osx.rst:77 msgid "" "Clone the `OSXCross repository `__ " "somewhere on your machine (or download a ZIP file and extract it somewhere), " "e.g.::" msgstr "" -#: ../../docs/development/compiling/compiling_for_osx.rst:70 +#: ../../docs/development/compiling/compiling_for_osx.rst:83 msgid "" "Follow the instructions to package the SDK: https://github.com/tpoechtrager/" "osxcross#packaging-the-sdk" msgstr "" -#: ../../docs/development/compiling/compiling_for_osx.rst:72 +#: ../../docs/development/compiling/compiling_for_osx.rst:85 msgid "" "Follow the instructions to install OSXCross: https://github.com/tpoechtrager/" "osxcross#installation" msgstr "" -#: ../../docs/development/compiling/compiling_for_osx.rst:75 +#: ../../docs/development/compiling/compiling_for_osx.rst:88 msgid "" "After that, you will need to define the ``OSXCROSS_ROOT`` as the path to the " "OSXCross installation (the same place where you cloned the repository/" "extracted the zip), e.g.::" msgstr "" -#: ../../docs/development/compiling/compiling_for_osx.rst:81 +#: ../../docs/development/compiling/compiling_for_osx.rst:94 msgid "Now you can compile with SCons like you normally would::" msgstr "" -#: ../../docs/development/compiling/compiling_for_osx.rst:85 +#: ../../docs/development/compiling/compiling_for_osx.rst:98 msgid "" "If you have an OSXCross SDK version different from the one expected by the " "SCons buildsystem, you can specify a custom one with the ``osxcross_sdk`` " @@ -77216,25 +78347,36 @@ msgid "" "to play videos)." msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:67 +#: ../../docs/development/compiling/optimizing_for_size.rst:66 +msgid "" +"Alternatively, you can supply a list of disabled modules by creating " +"``custom.py`` at the root of the source, with the contents similar to the " +"following:" +msgstr "" + +#: ../../docs/development/compiling/optimizing_for_size.rst:110 +msgid ":ref:`doc_overriding_build_options`." +msgstr "" + +#: ../../docs/development/compiling/optimizing_for_size.rst:113 msgid "Optimizing for size instead of speed" msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:69 +#: ../../docs/development/compiling/optimizing_for_size.rst:115 msgid "" "Godot 3.1 onwards allows compiling using size optimizations (instead of " "speed). To enable this, set the ``optimize`` flag to ``size``:" msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:76 +#: ../../docs/development/compiling/optimizing_for_size.rst:122 msgid "Some platforms such as WebAssembly already use this mode by default." msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:79 +#: ../../docs/development/compiling/optimizing_for_size.rst:125 msgid "Compiling with link-time optimization" msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:81 +#: ../../docs/development/compiling/optimizing_for_size.rst:127 msgid "" "Enabling link-time optimization produces more efficient binaries, both in " "terms of performance and file size. It works by eliminating duplicate " @@ -77242,32 +78384,32 @@ msgid "" "and MSVC compilers:" msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:90 +#: ../../docs/development/compiling/optimizing_for_size.rst:136 msgid "" "Linking becomes much slower with this option, so it should be used only for " "release builds." msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:94 +#: ../../docs/development/compiling/optimizing_for_size.rst:140 msgid "Stripping binaries" msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:96 +#: ../../docs/development/compiling/optimizing_for_size.rst:142 msgid "" "If you build from source, remember to strip debug symbols from binaries:" msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:103 +#: ../../docs/development/compiling/optimizing_for_size.rst:149 msgid "Using UPX to compress binaries" msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:105 +#: ../../docs/development/compiling/optimizing_for_size.rst:151 msgid "" "If you are targeting desktop platforms, the `UPX `_ " "compressor can be used. This can reduce binary size considerably." msgstr "" -#: ../../docs/development/compiling/optimizing_for_size.rst:109 +#: ../../docs/development/compiling/optimizing_for_size.rst:155 msgid "" "However, keep in mind that some antivirus programs may detect UPX-packed " "binaries as a virus. Therefore, if you are releasing a commercial game, make " @@ -77385,504 +78527,370 @@ msgstr "" msgid "Or:" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:4 +#: ../../docs/development/cpp/configuring_an_ide/index.rst:2 msgid "Configuring an IDE" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:6 +#: ../../docs/development/cpp/configuring_an_ide/index.rst:4 msgid "" "We assume that you have already `cloned `_ and :ref:`compiled ` Godot." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:9 +#: ../../docs/development/cpp/configuring_an_ide/index.rst:7 msgid "" "You can easily develop Godot with any text editor and by invoking ``scons`` " "on the command line, but if you want to work with an IDE (Integrated " "Development Environment), here are setup instructions for some popular ones:" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:13 -msgid "" -":ref:`Qt Creator ` (all desktop platforms)" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:14 -msgid "" -":ref:`Kdevelop ` (all desktop platforms)" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:15 -msgid ":ref:`Xcode ` (macOS)" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:16 -msgid ":ref:`Visual Studio ` (Windows)" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:17 -msgid "" -":ref:`Visual Studio Code` (all desktop " -"platforms)" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:18 -msgid "" -":ref:`Android Studio` (all desktop " -"platforms)" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:19 -msgid ":ref:`CLion` (all desktop platforms)" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:21 +#: ../../docs/development/cpp/configuring_an_ide/index.rst:23 msgid "" "It is possible to use other IDEs, but their setup is not documented yet." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:26 -msgid "Qt Creator" +#: ../../docs/development/cpp/configuring_an_ide/android_studio.rst:4 +msgid "Android Studio" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:29 -msgid "Importing the project" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:31 -msgid "Choose *New Project* -> *Import Project* -> *Import Existing Project*." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:35 -msgid "Set the path to your Godot root directory and enter the project name." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:39 +#: ../../docs/development/cpp/configuring_an_ide/android_studio.rst:6 msgid "" -"Here you can choose which folders and files will be visible to the project. " -"C/C++ files are added automatically. Potentially useful additions: \\*.py " -"for buildsystem files, \\*.java for Android development, \\*.mm for macOS. " -"Click \"Next\"." +"`Android Studio `_ is a free " +"`JetBrains `_ IDE for Android development. It " +"has a feature-rich editor which supports Java and C/C++. It can be used to " +"work on Godot's core engine as well as the Android platform codebase." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:45 -msgid "Click *Finish*." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:46 +#: ../../docs/development/cpp/configuring_an_ide/android_studio.rst:11 msgid "" -"Add a line containing ``.`` to *project_name.includes* to get working code " -"completion." +"From Android Studio's welcome window, select **Open an existing Android " +"Studio project**." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:51 -msgid "Build and run" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:53 -msgid "Build configuration:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:55 -msgid "Click on *Projects* and open the *Build* tab." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:56 -msgid "Delete the pre-defined ``make`` build step." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:60 -msgid "Click *Add Build Step* -> *Custom Process Step*." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:64 +#: ../../docs/development/cpp/configuring_an_ide/android_studio.rst:16 msgid "" -"Type ``scons`` in the *Command* field. If it fails with 'Could not start " -"process \"scons\"', it can mean that ``scons`` is not in your ``PATH`` " -"environment variable, so you may have to use the full path to the SCons " -"binary." +"Navigate to ``/platform/android/java`` and select the " +"``settings.gradle`` gradle file." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:67 +#: ../../docs/development/cpp/configuring_an_ide/android_studio.rst:17 +msgid "Android Studio will import and index the project." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/android_studio.rst:18 msgid "" -"Fill the *Arguments* field with your compilation options. (e.g.: ``p=x11 " -"target=debug -j 4``)" +"To build the project, follow the :ref:`compiling instructions `." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:71 -msgid "Run configuration:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:73 -msgid "Open the *Run* tab." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:74 +#: ../../docs/development/cpp/configuring_an_ide/android_studio.rst:20 +#: ../../docs/development/cpp/configuring_an_ide/clion.rst:33 +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:57 +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:104 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:63 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:48 +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:94 msgid "" -"Point the *Executable* to your compiled Godot binary (e.g: ``%{buildDir}/bin/" -"godot.x11.opt.tools.64``)" +"If you run into any issues, ask for help in one of `Godot's community " +"channels `__." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:75 +#: ../../docs/development/cpp/configuring_an_ide/clion.rst:4 +msgid "CLion" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/clion.rst:6 msgid "" -"If you want to run a specific game or project, point *Working directory* to " -"the game directory." +"`CLion `_ is a commercial IDE for C++. It " +"requires a ``CMakeLists.txt`` file as a project file, which is problematic " +"for Godot which uses the SCons buildsystem instead of CMake. However, there " +"is a ``CMakeLists.txt`` configuration for :ref:`Android Studio " +"` which can also be used by CLion." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:76 +#: ../../docs/development/cpp/configuring_an_ide/clion.rst:13 msgid "" -"If you want to run the editor, add ``-e`` to the *Command line arguments* " -"field." +"If you've already opened another project, choose **File > Open** at the top " +"of the CLion window. Otherwise, choose the option to import an existing " +"project in the Welcome window." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:81 -msgid "Updating sources after pulling latest commits" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:83 +#: ../../docs/development/cpp/configuring_an_ide/clion.rst:16 msgid "" -"As a developer you usually want to frequently pull the latest commits from " -"the upstream git repository or a specific fork etc. However, this brings a " -"little problem with it: as the development continues, source files (and " -"folders) are added or removed. These changes need to be reflected in your " -"project files for Qt Creator too, so you continue to have a nice experience " -"coding in it. A simple way to check is to right click at your root folder in " -"the \"Projects View\" and click on \"Edit files...\"" +"Navigate to your Godot Git clone then select the folder ``platform/android/" +"java/lib`` - the ``CMakeLists.txt`` file is located there. Select the folder " +"(*not* the ``CMakeLists.txt file``), then click **OK**." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:93 +#: ../../docs/development/cpp/configuring_an_ide/clion.rst:22 msgid "" -"Now a new dialog should appear that is similar in functionality to the one " -"in the third step of the \"Importing the project\" section. Here you can " -"check whether you want to add/remove specific files and/or folders. You can " -"choose by clicking with your mouse or just simply by clicking the \"Apply " -"Filter\" button. A simple click on \"Ok\" and you're ready to continue your " -"work." +"If this popup window appears, select **This Window** to open the project:" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:101 -msgid "Code style configuration" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:103 +#: ../../docs/development/cpp/configuring_an_ide/clion.rst:26 msgid "" -"Developers must follow the project's :ref:`code style " -"` and IDE should help them to do it. By default, " -"Qt Creator does use spaces for indentation which is incorrect for Godot " -"project. You can change this behavior by changing the \"Code Style\" in " -"*Options* -> *C++*." +"Choose **Tools > CMake >Change Project Root** and select the root Godot " +"folder." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:110 +#: ../../docs/development/cpp/configuring_an_ide/clion.rst:30 msgid "" -"Click on *Edit* to change the current settings, then click on *Copy Built-in " -"Code Style* button to set a new code style. Set a name for it (e.g. Godot) " -"and change the Tab policy to be *Tabs Only*." +"You should be now be able to see all the project files. Autocomplete should " +"work once the project has finished indexing." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:119 +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:4 msgid "KDevelop" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:121 +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:6 msgid "" "`KDevelop `_ is a free, open source IDE for all " "desktop platforms." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:123 -msgid "" -"You can find a video tutorial `here `_. Or you may follow this text version tutorial." +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:8 +msgid "Start by opening KDevelop and choosing **Open Project**." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:126 -msgid "Start by opening KDevelop and choosing \"open project\"." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:130 +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:12 msgid "Choose the directory where you cloned Godot." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:132 +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:14 msgid "" -"On the next screen, choose \"Custom Build System\" for the *Project manager*." +"On the next screen, choose **Custom Build System** for the **Project " +"Manager**." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:136 +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:18 msgid "Now that the project has been imported, open the project configuration." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:140 +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:22 msgid "Add the following includes/imports:" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:153 +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:35 msgid "Apply the changes." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:155 +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:37 msgid "" -"Switch to the \"Custom Build System\" tab. Add a build configuration and " +"Switch to the **Custom Build System** tab. Add a build configuration and " "keep the build directory blank. Enable build tools and add ``scons`` as the " -"executable then add ``platform=x11 target=debug`` (``platform=osx`` if " +"executable then add ``platform=linuxbsd target=debug`` (``platform=osx`` if " "you're on macOS) as the arguments." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:162 +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:44 msgid "" -"Next we need to tell KDevelop where to find the binary. From the \"Run\" " -"menu, choose \"Configure Launches\"." +"Next, we need to tell KDevelop where to find the binary. From the **Run** " +"menu, choose **Configure Launches**." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:167 +#: ../../docs/development/cpp/configuring_an_ide/kdevelop.rst:49 msgid "" -"Click \"Add\" if no launcher exists. Then add the path to your executable in " +"Click **Add** if no launcher exists. Then add the path to your executable in " "the executable section. Your executable should be located in the ``bin/`` " -"sub-directory and should be named something like ``godot.x11.tools.64`` (the " -"name could be different depending on your platform and depending on your " -"build options)." +"subdirectory and should be named something like ``godot.linuxbsd.tools.64`` " +"(the name could be different depending on your platform and build options)." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:175 -msgid "That's it! Now you should be good to go :)" +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:4 +msgid "Qt Creator" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:181 -msgid "Xcode" +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:6 +msgid "Qt Creator is a free, open source IDE for all desktop platforms." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:186 -msgid "Create an Xcode external build project anywhere" +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:9 +msgid "Importing the project" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:190 -msgid "Set the *Build tool* to the path to scons" +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:11 +msgid "Choose **New Project > Import Project > Import Existing Project**." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:192 -msgid "Modify Build Target's Xcode Info Tab:" +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:15 +msgid "Set the path to your Godot root directory and enter the project name." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:194 +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:19 msgid "" -"Set *Arguments* to something like: platform=osx tools=yes bits=64 " -"target=debug" +"Here you can choose which folders and files will be visible to the project. " +"C/C++ files are added automatically. Potentially useful additions: ``*.py`` " +"for buildsystem files, ``*.java`` for Android platform development, ``*.mm`` " +"for macOS platform development. Click **Next**." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:195 +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:26 +msgid "Click **Finish**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:27 msgid "" -"Set *Directory* to the path to Godot's source folder. Keep it blank if " -"project is already there." +"Add a line containing ``.`` to ``project_name.includes`` to get working code " +"completion." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:196 -msgid "You may uncheck *Pass build settings in environment*" +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:33 +msgid "Build and run" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:200 -msgid "Add a Command Line Target:" +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:35 +msgid "Build configuration:" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:202 +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:37 +msgid "Click on **Projects** and open the **Build** tab." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:38 +msgid "Delete the predefined ``make`` build step." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:42 +msgid "Click **Add Build Step > Custom Process Step**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:46 msgid "" -"Go to Xcode File > New > Target... and add a new Xcode command line target" +"Type ``scons`` in the **Command** field. If it fails with ``Could not start " +"process \"scons\"``, it can mean that ``scons`` is not in your ``PATH`` " +"environment variable. In this case, you'll have to specify the full path to " +"the SCons binary." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:208 -msgid "Name it something so you know not to compile with this target" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:209 -msgid "e.g. ``GodotXcodeIndex``" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:210 +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:50 msgid "" -"Goto the newly created target's *Build Settings* tab and search for *Header " -"Search Paths*" +"Fill the **Arguments** field with your compilation options (e.g.: " +"``p=linuxbsd target=debug -j 4``)." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:211 -msgid "Set *Header Search Paths* to an absolute path to Godot's source folder" +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:55 +msgid "Run configuration:" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:212 -msgid "Make it recursive by adding two \\*'s to the end of the path" +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:57 +msgid "Open the **Run** tab." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:213 -msgid "e.g. ``/Users/me/repos/godot-source/\\**``" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:215 -msgid "Add Godot Source to the Project:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:217 -msgid "Drag and drop Godot source into project file browser." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:218 -msgid "Uncheck *Create External Build System*" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:222 -msgid "Click Next" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:223 -msgid "Select *create groups*" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:227 -msgid "Check off only your command line target in the *Add to targets* section" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:228 -msgid "Click finish. Xcode will now index the files." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:229 -msgid "Grab a cup of coffee... Maybe make something to eat, too" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:230 +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:58 msgid "" -"You should have jump to definition, auto completion, and full syntax " -"highlighting when it is done." +"Point the **Executable** to your compiled Godot binary (e.g: ``%{buildDir}/" +"bin/godot.linuxbsd.opt.tools.64``)." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:233 -msgid "Scheme setup" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:235 -msgid "Edit Build Scheme of External Build Target:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:237 -msgid "Open scheme editor of external build target" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:238 -msgid "Expand the *Build* menu" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:239 -msgid "Goto *Post Actions*" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:240 +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:60 msgid "" -"Add a new script run action, select your project in ``Provide build settings " -"from`` as this allows you to use ``${PROJECT_DIR}`` variable." +"If you want to run a specific project, point **Working directory** to the " +"project folder." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:244 -msgid "Write a script that gives the binary a name that Xcode will recognize" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:245 +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:62 msgid "" -"e.g. ``ln -f ${PROJECT_DIR}/godot/bin/godot.osx.tools.64 ${PROJECT_DIR}/" -"godot/bin/godot``" +"If you want to run the editor, add ``-e`` to the **Command line arguments** " +"field." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:246 -msgid "Build the external build target" +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:68 +msgid "Updating sources after pulling latest commits" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:248 -msgid "Edit Run Scheme of External Build Target:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:250 -msgid "Open the scheme editor again" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:251 -msgid "Click Run" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:255 +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:70 msgid "" -"Set the *Executable* to the file you linked in your post build action script" +"As a developer, you usually want to frequently pull the latest commits from " +"the upstream Git repository or a specific fork. However, this brings a " +"problem with it: as the development continues, source files (and folders) " +"are added or removed. These changes need to be reflected in your project " +"files for Qt Creator too, so you continue to have a nice programming " +"experience. A simple way to check is to right click at your root folder in " +"the **Projects View** and click on **Edit files...**." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:256 -msgid "Check *Debug executable* if it isn't already" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:257 +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:80 msgid "" -"You can go to *Arguments* tab and add an -e and a -path to a project to " -"debug the editor not the project selection screen" +"Now a new dialog should appear that is similar in functionality to the one " +"in the third step of the *Importing the project* section above. Here, you " +"can check whether you want to add/remove specific files and/or folders. You " +"can choose by clicking with your mouse or just simply by clicking the " +"**Apply Filter** button. Click on **OK** and you're ready to continue " +"working." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:260 -msgid "Test it:" +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:89 +msgid "Code style configuration" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:262 -msgid "Set a breakpoint in platform/osx/godot_main_osx.mm" +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:91 +msgid "" +"Developers must follow the project's :ref:`code style " +"` and the IDE should help them follow it. By " +"default, Qt Creator does use spaces for indentation which doesn't match the " +"Godot code style guidelines. You can change this behavior by changing the " +"**Code Style** in **Options > C++**." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:263 -msgid "It should break at the point!" +#: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:98 +msgid "" +"Click on **Edit** to change the current settings, then click on **Copy Built-" +"in Code Style** button to set a new code style. Set a name for it (e.g. " +"Godot) and change the Tab policy to be **Tabs Only**." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:269 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:4 msgid "Visual Studio" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:271 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:6 msgid "" -"Visual Studio Community is free for non-commercial use and has many useful " -"features, such as memory view, performance view, source control and more. " -"You can get it `from Microsoft `__." +"Visual Studio Community is a Windows-only IDE that's free for non-commercial " +"use. It has many useful features, such as memory view, performance view, " +"source control and more. You can get it `from Microsoft `__." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:278 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:14 msgid "To start developing with Visual Studio, follow these steps:" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:280 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:16 msgid "Open the Visual Studio Installer and install the C++ package:" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:284 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:20 msgid "" "Open a Command Prompt or PowerShell window, use ``cd`` to reach the Godot " "source directory and run ``scons platform=windows vsproj=yes``." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:287 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:23 msgid "" "Now open the Godot folder by clicking **Open a project or solution** and " "choose ``godot.sln``. - You can also double-click the ``godot.sln`` file in " "Explorer." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:291 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:27 msgid "You can now start developing with Visual Studio." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:296 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:32 msgid "" "Visual Studio features a powerful debugger. This allows the user to examine " "Godot's source code, stop at specific points in the code, make changes, and " "view them on the run." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:299 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:35 msgid "" "Debugging the Godot Engine inside the editor will require an extra setup " "step." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:301 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:37 msgid "" "Because opening Godot opens the Project Manager at first instead of the " "project you're working on, the debugger will detach as soon as you open a " @@ -77890,176 +78898,300 @@ msgid "" "running in another process." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:306 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:42 msgid "" "To overcome this, you need to edit the debugging command line arguments in " "VS. In your project, click **Project > Project Properties**:" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:311 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:47 msgid "Then add this to the command arguments:" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:315 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:51 msgid "" "The ``-e`` flag is for entering the editor directly (which skips the Project " "Manager)." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:316 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:52 msgid "" "The ``--path`` argument should be an *absolute* path to a project directory " "(not a `project.godot` file)." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:319 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:55 msgid "" "To learn more about command line arguments, refer to the :ref:`command line " "tutorial `." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:322 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio.rst:58 msgid "" "To check that everything is working, put a breakpoint in ``main.cpp`` and " "press F5 to start debugging." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:333 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:6 msgid "" -"Ensure that C/C++ extension is installed. You can find instructions in `docs " -"`_." +"Visual Studio Code is a free cross-platform IDE (not to be confused with :" +"ref:`doc_configuring_an_ide_vs`). You can get it `from Microsoft `__." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:335 -msgid "Open cloned godot folder in VS Code with ``File > Open Folder...``" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:337 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:11 msgid "" -"In order to build the project, you need two configuration files: *launch." -"json* and *tasks.json*. To create them:" +"Make sure the C/C++ extension is installed. You can find instructions in the " +"`documentation `_." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:340 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:13 msgid "" -"Open *Debug* view by pressing :kbd:`Ctrl + Shift + D` and select cogwheel " -"with an orange dot:" +"Open the cloned Godot folder in Visual Studio Code with **File > Open " +"Folder...**." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:344 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:16 msgid "" -"Select *C++ (GDB/LLDB)* (it might be named differently on macOS or Windows)" +"In order to build the project, you need two configuration files: ``launch." +"json`` and ``tasks.json``. To create them:" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:346 -msgid "Update *launch.json* to match:" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:350 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:19 msgid "" -"(Note that *godot.x11.tools.64* in \"program\" value might be named " -"differently on macOS or Windows)" +"Open the **Debug** view by pressing :kbd:`Ctrl + Shift + D` and select the " +"cogwheel with an orange dot:" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:352 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:24 msgid "" -"Create *tasks.json* by starting the Debug process with :kbd:`F5`. VS Code " -"will show a dialog with a *Configure Task* button. Tap it and select *Create " -"tasks.json file from template*, then select *Others*" +"Select **C++ (GDB/LLDB)** (it might be named differently on macOS or " +"Windows)." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:354 -msgid "Update *tasks.json* to match:" +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:26 +msgid "Update ``launch.json`` to match:" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:358 -msgid "(Note that *platform=x11* will be different for macOX and Windows)" +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:30 +msgid "" +"If you're following this guide on macOS or Windows, you will have to adjust " +"``godot.linuxbsd.tools.64`` accordingly." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:360 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:33 +msgid "" +"Create a ``tasks.json`` file by starting the Debug process with :kbd:`F5`. " +"Visual Studio Code will show a dialog with a **Configure Task** button. " +"Choose it and select **Create tasks.json file from template**, then select " +"**Others**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:37 +msgid "Update ``tasks.json`` to match:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:41 +msgid "" +"If you're following this guide on macOS or Windows, you will have to adjust " +"``platform=linuxbsd`` accordingly." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:44 msgid "" "You can now start the Debug process again to test that everything works." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:362 +#: ../../docs/development/cpp/configuring_an_ide/visual_studio_code.rst:45 msgid "" -"If the build phase fails, check the console for hints. On Linux it's most " -"likely that some dependencies are missing. Check :ref:`Compiling for X11 " -"(Linux, \\*BSD) `" +"If the build phase fails, check the console for hints. On Linux, it's most " +"likely due to missing dependencies. Check :ref:`doc_compiling_for_linuxbsd`." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:368 -msgid "Android Studio" +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:4 +msgid "Xcode" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:370 +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:6 msgid "" -"`Android Studio `_ is a `JetBrains " -"`_ IDE for Android development. It has a feature-" -"rich editor which supports Java and C/C++, so it can be used for development " -"of the Godot core engine, and Android platform codebases." +"Xcode is a free macOS-only IDE. You can download it from the Mac App Store." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:375 +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:11 +msgid "Create an Xcode external build project anywhere." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:15 +msgid "Go to the build target's **Info** tab, then:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:17 +msgid "Set **Build Tool** to the full path to SCons." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:18 msgid "" -"From the Android Studio *Welcome to Android Studio* window, select *Open an " -"existing Android Studio project*" +"Set **Arguments** to something like ``platform=osx tools=yes bits=64 " +"target=debug``." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:379 +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:20 +msgid "Set **Directory** to the path to Godot's source folder." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:21 +msgid "You may uncheck **Pass build settings in environment**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:25 msgid "" -"Navigate to ``/platform/android/java`` and select the " -"``settings.gradle`` gradle file." +"Add a Command Line Tool target which will be used for indexing the project:" msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:380 -msgid "Android Studio will import and index the project." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:381 +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:27 msgid "" -"To build the project, follow the :ref:`compiling instructions `." +"In Xcode's menu, choose **File > New > Target...** and add a new Xcode " +"command line tool target." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:386 -msgid "CLion" -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:388 +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:34 msgid "" -"`CLion `_ is a commercial IDE for C++. It " -"requires a ``CMakeLists.txt`` file as a project file, which is problematic " -"for Godot which uses the SCons buildsystem and not CMake. However, there is " -"a ``CMakeLists.txt`` configuration for :ref:`Android Studio " -"` which can also be used by CLion." +"Name it something so you know not to compile with this target (e.g. " +"``GodotXcodeIndex``)." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:390 -msgid "Choose *File* -> *Open*." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:392 +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:35 msgid "" -"Navigation to your Godot Git clone, and select the folder ``platform/android/" -"java/lib`` (the ``CMakeLists.txt`` file is located there). Select the " -"folder, not the ``CMakeLists.txt file``. Then click *Ok*." +"Goto the newly created target's **Build Settings** tab and look for **Header " +"Search Paths**." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:396 -msgid "If this popup window appears, select *This window* to open the project." -msgstr "" - -#: ../../docs/development/cpp/configuring_an_ide.rst:400 +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:36 msgid "" -"Choose *Tools* -> *CMake* -> *Change Project Root* and select the root Godot " -"folder." +"Set **Header Search Paths** to the absolute path to Godot's source folder." msgstr "" -#: ../../docs/development/cpp/configuring_an_ide.rst:404 +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:37 msgid "" -"You should be now be able to see all the project files. Autocomplete should " -"work, when the project finish indexing." +"Make it recursive by adding two asterisks (``**``) to the end of the path, e." +"g. ``/Users/me/repos/godot-source/**``." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:40 +msgid "Add the Godot source to the project:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:42 +msgid "Drag and drop Godot source into the project file browser." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:43 +msgid "Uncheck **Create external build system project**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:47 +msgid "Click **Next**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:48 +msgid "Select **Create groups**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:52 +msgid "" +"Check *only* your command line indexing target in the **Add to targets** " +"section." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:54 +msgid "" +"Click finish. Xcode will now index the files. This may take a few minutes." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:55 +msgid "" +"Once Xcode is done indexing, you should have jump-to-definition, " +"autocompletion, and full syntax highlighting." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:59 +msgid "Scheme setup" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:61 +msgid "" +"To enable debugging support, edit the external build target's build scheme:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:63 +msgid "Open the scheme editor of the external build target." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:64 +msgid "Expand the **Build** menu." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:65 +msgid "Goto **Post Actions**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:66 +msgid "" +"Add a new script run action, select your project in **Provide build settings " +"from** as this allows you to use the``${PROJECT_DIR}`` variable." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:71 +msgid "" +"Write a script that gives the binary a name that Xcode will recognize, such " +"as: ``ln -f ${PROJECT_DIR}/godot/bin/godot.osx.tools.64 ${PROJECT_DIR}/godot/" +"bin/godot``" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:73 +msgid "Build the external build target." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:75 +msgid "Edit the external build target's Run scheme:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:77 +msgid "Open the scheme editor again." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:78 +msgid "Click **Run**." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:82 +msgid "" +"Set the **Executable** to the file you linked in your post-build action " +"script." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:83 +msgid "Check **Debug executable** if it isn't checked already." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:84 +msgid "" +"You can go to **Arguments** tab and specify the full path to a ``project." +"godot`` file to debug the editor instead of the project manager. " +"Alternatively, use ``--path`` to point to a project *folder* which will be " +"run directly (instead of opening the editor)." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:89 +msgid "Test the Run scheme:" +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:91 +msgid "Set a breakpoint in ``platform/osx/godot_main_osx.mm``." +msgstr "" + +#: ../../docs/development/cpp/configuring_an_ide/xcode.rst:92 +msgid "If all goes well, it should break at the specified breakpoint." msgstr "" #: ../../docs/development/cpp/core_types.rst:4 @@ -78124,10 +79256,10 @@ msgstr "" #: ../../docs/development/cpp/variant_class.rst:57 #: ../../docs/development/cpp/object_class.rst:31 #: ../../docs/development/cpp/object_class.rst:89 -#: ../../docs/development/cpp/object_class.rst:252 -#: ../../docs/development/cpp/object_class.rst:268 -#: ../../docs/development/cpp/object_class.rst:289 -#: ../../docs/development/cpp/object_class.rst:308 +#: ../../docs/development/cpp/object_class.rst:254 +#: ../../docs/development/cpp/object_class.rst:270 +#: ../../docs/development/cpp/object_class.rst:291 +#: ../../docs/development/cpp/object_class.rst:310 #: ../../docs/development/cpp/custom_audiostreams.rst:23 #: ../../docs/development/cpp/custom_audiostreams.rst:117 #: ../../docs/development/cpp/custom_audiostreams.rst:348 @@ -78699,39 +79831,39 @@ msgstr "" msgid "This creates the property using the setter and the getter." msgstr "" -#: ../../docs/development/cpp/object_class.rst:173 +#: ../../docs/development/cpp/object_class.rst:175 msgid "Binding properties using ``_set``/``_get``/``_get_property_list``" msgstr "" -#: ../../docs/development/cpp/object_class.rst:175 +#: ../../docs/development/cpp/object_class.rst:177 msgid "" "An additional method of creating properties exists when more flexibility is " "desired (i.e. adding or removing properties on context)." msgstr "" -#: ../../docs/development/cpp/object_class.rst:178 +#: ../../docs/development/cpp/object_class.rst:180 msgid "" "The following functions can be overridden in an Object derived class, they " "are NOT virtual, DO NOT make them virtual, they are called for every " "override and the previous ones are not invalidated (multilevel call)." msgstr "" -#: ../../docs/development/cpp/object_class.rst:190 +#: ../../docs/development/cpp/object_class.rst:192 msgid "" "This is also a little less efficient since ``p_property`` must be compared " "against the desired names in serial order." msgstr "" -#: ../../docs/development/cpp/object_class.rst:194 +#: ../../docs/development/cpp/object_class.rst:196 msgid "Dynamic casting" msgstr "" -#: ../../docs/development/cpp/object_class.rst:196 +#: ../../docs/development/cpp/object_class.rst:198 msgid "" "Godot provides dynamic casting between Object-derived classes, for example:" msgstr "" -#: ../../docs/development/cpp/object_class.rst:206 +#: ../../docs/development/cpp/object_class.rst:208 msgid "" "If cast fails, NULL is returned. This system uses RTTI, but it also works " "fine (although a bit slower) when RTTI is disabled. This is useful on " @@ -78739,59 +79871,59 @@ msgid "" "(with low memory footprint)." msgstr "" -#: ../../docs/development/cpp/object_class.rst:214 +#: ../../docs/development/cpp/object_class.rst:216 msgid "" "Objects can have a set of signals defined (similar to Delegates in other " "languages). Connecting to them is rather easy:" msgstr "" -#: ../../docs/development/cpp/object_class.rst:223 +#: ../../docs/development/cpp/object_class.rst:225 msgid "" "The method ``_node_entered_tree`` must be registered to the class using " "``ClassDB::register_method`` (explained before)." msgstr "" -#: ../../docs/development/cpp/object_class.rst:226 +#: ../../docs/development/cpp/object_class.rst:228 msgid "" "Adding signals to a class is done in ``_bind_methods``, using the " "``ADD_SIGNAL`` macro, for example:" msgstr "" -#: ../../docs/development/cpp/object_class.rst:234 +#: ../../docs/development/cpp/object_class.rst:236 #: ../../docs/development/cpp/custom_resource_format_loaders.rst:18 #: ../../docs/development/cpp/custom_resource_format_loaders.rst:39 #: ../../docs/development/cpp/custom_resource_format_loaders.rst:303 #: ../../docs/development/cpp/custom_resource_format_loaders.rst:356 #: ../../docs/development/cpp/custom_godot_servers.rst:19 #: ../../docs/development/cpp/custom_godot_servers.rst:316 -#: ../../docs/development/editor/creating_icons.rst:80 +#: ../../docs/development/editor/creating_icons.rst:102 msgid "References" msgstr "" -#: ../../docs/development/cpp/object_class.rst:236 +#: ../../docs/development/cpp/object_class.rst:238 msgid "" ":ref:`Reference ` inherits from Object and holds a " "reference count. It is the base for reference counted object types. " "Declaring them must be done using Ref<> template. For example:" msgstr "" -#: ../../docs/development/cpp/object_class.rst:248 +#: ../../docs/development/cpp/object_class.rst:250 msgid "" "``myref`` is reference counted. It will be freed when no more Ref<> " "templates point to it." msgstr "" -#: ../../docs/development/cpp/object_class.rst:254 +#: ../../docs/development/cpp/object_class.rst:256 msgid "" "`core/reference.h `__" msgstr "" -#: ../../docs/development/cpp/object_class.rst:257 +#: ../../docs/development/cpp/object_class.rst:259 msgid "Resources:" msgstr "" -#: ../../docs/development/cpp/object_class.rst:259 +#: ../../docs/development/cpp/object_class.rst:261 msgid "" ":ref:`Resource ` inherits from Reference, so all resources " "are reference counted. Resources can optionally contain a path, which " @@ -78800,50 +79932,50 @@ msgid "" "resources can have the same path, attempt to do so will result in an error." msgstr "" -#: ../../docs/development/cpp/object_class.rst:265 +#: ../../docs/development/cpp/object_class.rst:267 msgid "Resources without a path are fine too." msgstr "" -#: ../../docs/development/cpp/object_class.rst:270 +#: ../../docs/development/cpp/object_class.rst:272 msgid "" "`core/resource.h `__" msgstr "" -#: ../../docs/development/cpp/object_class.rst:273 +#: ../../docs/development/cpp/object_class.rst:275 msgid "Resource loading" msgstr "" -#: ../../docs/development/cpp/object_class.rst:275 +#: ../../docs/development/cpp/object_class.rst:277 msgid "Resources can be loaded with the ResourceLoader API, like this:" msgstr "" -#: ../../docs/development/cpp/object_class.rst:281 +#: ../../docs/development/cpp/object_class.rst:283 msgid "" "If a reference to that resource has been loaded previously and is in memory, " "the resource loader will return that reference. This means that there can be " "only one resource loaded from a file referenced on disk at the same time." msgstr "" -#: ../../docs/development/cpp/object_class.rst:286 +#: ../../docs/development/cpp/object_class.rst:288 msgid "resourceinteractiveloader (TODO)" msgstr "" -#: ../../docs/development/cpp/object_class.rst:291 +#: ../../docs/development/cpp/object_class.rst:293 msgid "" "`core/io/resource_loader.h `__" msgstr "" -#: ../../docs/development/cpp/object_class.rst:294 +#: ../../docs/development/cpp/object_class.rst:296 msgid "Resource saving" msgstr "" -#: ../../docs/development/cpp/object_class.rst:296 +#: ../../docs/development/cpp/object_class.rst:298 msgid "Saving a resource can be done with the resource saver API:" msgstr "" -#: ../../docs/development/cpp/object_class.rst:302 +#: ../../docs/development/cpp/object_class.rst:304 msgid "" "Instance will be saved. Sub resources that have a path to a file will be " "saved as a reference to that resource. Sub resources without a path will be " @@ -78851,7 +79983,7 @@ msgid "" "someresource.res::1\". This also helps to cache them when loaded." msgstr "" -#: ../../docs/development/cpp/object_class.rst:310 +#: ../../docs/development/cpp/object_class.rst:312 msgid "" "`core/io/resource_saver.h `__" @@ -79171,144 +80303,177 @@ msgid "" msgstr "" #: ../../docs/development/cpp/custom_modules_in_cpp.rst:376 -msgid "Append the following code snippet to ``config.py``:" +msgid "Now, we need to edit ``config.py``, add the following snippet:" msgstr "" #: ../../docs/development/cpp/custom_modules_in_cpp.rst:388 msgid "" -"The ``get_doc_classes()`` method is necessary for the build system to know " -"which documentation classes of the module must be merged, since the module " -"may contain several classes. Replace ``ClassName`` with the name of the " -"class you want to write documentation for. If you need docs for more than " -"one class, append those as well." +"The ``get_doc_path()`` function is used by the build system to determine the " +"location of the docs. In this case, they will be located in the ``modules/" +"summator/doc_classes`` directory. If you don't define this, the doc path for " +"your module will fall back to the main ``doc/classes`` directory." msgstr "" #: ../../docs/development/cpp/custom_modules_in_cpp.rst:394 msgid "" -"The ``get_doc_path()`` method is used by the build system to determine the " -"location of the docs. In our case, they will be located in the " -"``doc_classes`` directory." +"The ``get_doc_classes()`` method is necessary for the build system to know " +"which registered classes belong to the module. You need to list all of your " +"classes here. The classes that you don't list will end up in the main ``doc/" +"classes`` directory." msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:398 -msgid "Run command:" -msgstr "" - -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:404 +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:401 msgid "" -"This will dump the engine API reference to the given ```` in XML " -"format. Notice that you'll need to configure your ``PATH`` to locate Godot's " -"executable, and make sure that you have write access rights. If not, you " -"might encounter an error similar to the following:" +"You can use git to check if you have missed some of your classes by checking " +"the untracked files with ``git status``. For example::" msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:414 -msgid "Get generated doc file from ``godot/doc/classes/ClassName.xml``" -msgstr "" - -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:416 -msgid "" -"Copy this file to ``doc_classes``, optionally edit it, then compile the " -"engine." +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:406 +msgid "Example output::" msgstr "" #: ../../docs/development/cpp/custom_modules_in_cpp.rst:418 -msgid "" -"The build system will fetch the documentation files from the ``doc_classes`` " -"directory and merge them with the base types. Once the compilation process " -"is finished, the docs will become accessible within the engine's built-in " -"documentation system." +msgid "Now we can generate the documentation:" msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:422 +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:420 +msgid "" +"We can do this via running Godot's doctool i.e. ``godot --doctool ``, " +"which will dump the engine API reference to the given ```` in XML " +"format." +msgstr "" + +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:423 +msgid "" +"In our case we'll point it to the root of the cloned repository. You can " +"point it to an another folder, and just copy over the files that you need." +msgstr "" + +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:426 +msgid "Run command:" +msgstr "" + +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:432 +msgid "" +"Now if you go to the ``godot/modules/summator/doc_classes`` folder, you will " +"see that it contains a ``Summator.xml`` file, or any other classes, that you " +"referenced in your ``get_doc_classes`` function." +msgstr "" + +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:436 +msgid "" +"Edit the file(s) following :ref:`doc_updating_the_class_reference` and " +"recompile the engine." +msgstr "" + +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:438 +msgid "" +"Once the compilation process is finished, the docs will become accessible " +"within the engine's built-in documentation system." +msgstr "" + +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:441 msgid "" "In order to keep documentation up-to-date, all you'll have to do is simply " -"modify one of the ``ClassName.xml`` files and recompile the engine from now " -"on." +"modify one of the XML files and recompile the engine from now on." msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:428 +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:444 +msgid "" +"If you change your module's API, you can also re-extract the docs, they will " +"contain the things that you previously added. Of course if you point it to " +"your godot folder, make sure you don't lose work by extracting older docs " +"from an older engine build on top of the newer ones." +msgstr "" + +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:449 +msgid "" +"Note that if you don't have write access rights to your supplied ````, " +"you might encounter an error similar to the following:" +msgstr "" + +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:461 msgid "Adding custom editor icons" msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:430 +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:463 msgid "" "Similarly to how you can write self-contained documentation within a module, " "you can also create your own custom icons for classes to appear in the " "editor." msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:433 +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:466 msgid "" "For the actual process of creating editor icons to be integrated within the " "engine, please refer to :ref:`doc_editor_icons` first." msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:436 +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:469 msgid "Once you've created your icon(s), proceed with the following steps:" msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:438 +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:471 msgid "" "Make a new directory in the root of the module named ``icons``. This is the " "default path for the engine to look for module's editor icons." msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:441 +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:474 msgid "" "Move your newly created ``svg`` icons (optimized or not) into that folder." msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:443 +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:476 msgid "" "Recompile the engine and run the editor. Now the icon(s) will appear in " "editor's interface where appropriate." msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:446 +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:479 msgid "" "If you'd like to store your icons somewhere else within your module, add the " "following code snippet to ``config.py`` to override the default path:" msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:455 +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:488 msgid "Summing up" msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:457 +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:490 msgid "Remember to:" msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:459 +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:492 msgid "use ``GDCLASS`` macro for inheritance, so Godot can wrap it" msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:460 +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:493 msgid "" "use ``_bind_methods`` to bind your functions to scripting, and to allow them " "to work as callbacks for signals." msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:463 +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:496 msgid "" "But this is not all, depending what you do, you will be greeted with some " "(hopefully positive) surprises." msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:466 +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:499 msgid "" "If you inherit from :ref:`class_Node` (or any derived node type, such as " "Sprite), your new class will appear in the editor, in the inheritance tree " "in the \"Add Node\" dialog." msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:469 +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:502 msgid "" "If you inherit from :ref:`class_Resource`, it will appear in the resource " "list, and all the exposed properties can be serialized when saved/loaded." msgstr "" -#: ../../docs/development/cpp/custom_modules_in_cpp.rst:472 +#: ../../docs/development/cpp/custom_modules_in_cpp.rst:505 msgid "" "By this same logic, you can extend the Editor and almost any area of the " "engine." @@ -79858,14 +81023,6 @@ msgstr "" msgid "Editor development" msgstr "" -#: ../../docs/development/editor/introduction.rst:6 -msgid "" -"As the engine is constantly evolving and new features are being added, it is " -"important to familiarize yourself with the editor and tools development in C+" -"+. Without the editor, some of the engine's internal functionality would " -"become unaccessible and make the development not intuitive." -msgstr "" - #: ../../docs/development/editor/creating_icons.rst:4 msgid "Editor icons" msgstr "" @@ -79874,8 +81031,8 @@ msgstr "" msgid "" "When a new class is created and exposed to scripting, the editor's interface " "will display it with a default icon representing the base class it inherits " -"from. Yet in most cases it is recommended to create icons for new classes to " -"improve the user experience." +"from. In most cases, it's still recommended to create icons for new classes " +"to improve the user experience." msgstr "" #: ../../docs/development/editor/creating_icons.rst:12 @@ -79920,44 +81077,73 @@ msgid "" msgstr "" #: ../../docs/development/editor/creating_icons.rst:37 -msgid "Icon optimization" +msgid "Color conversion for light editor themes" msgstr "" #: ../../docs/development/editor/creating_icons.rst:39 msgid "" +"If the user has configured their editor to use a light theme, Godot will " +"convert the icon's colors based on a `set of predefined color mappings " +"`__. This is to ensure the icon always displays with a sufficient " +"contrast rate. Try to restrict your icon's color palette to colors found in " +"the list above. Otherwise, your icon may become difficult to read on a light " +"background." +msgstr "" + +#: ../../docs/development/editor/creating_icons.rst:47 +msgid "Icon optimization" +msgstr "" + +#: ../../docs/development/editor/creating_icons.rst:49 +msgid "" "Because the editor renders SVGs once at load time, they need to be small in " "size so they can be efficiently parsed. Editor icons must be first optimized " "before being added to the engine, to do so:" msgstr "" -#: ../../docs/development/editor/creating_icons.rst:43 -msgid "Add them to the ``engine/icons/svg`` folder." -msgstr "" - -#: ../../docs/development/editor/creating_icons.rst:45 +#: ../../docs/development/editor/creating_icons.rst:53 msgid "" -"Run the ``optimize.py`` script. You must have the ``scour`` package " -"installed:" +"Install `svgcleaner `__ by " +"downloading a binary from its `Releases tab `__ and placing it into a location in your " +"``PATH`` environment variable." msgstr "" -#: ../../docs/development/editor/creating_icons.rst:52 +#: ../../docs/development/editor/creating_icons.rst:58 msgid "" -"The optimized icons will be generated in the ``engine/icons/optimized`` " -"folder." +"Run the command below, replacing ``svg_source.svg`` with the path to your " +"SVG file (which can be a relative or absolute path):" msgstr "" -#: ../../docs/development/editor/creating_icons.rst:55 +#: ../../docs/development/editor/creating_icons.rst:65 +msgid "" +"The ``--multipass`` switch improves compression, so make sure to include it. " +"The optimized icon will be saved to ``svg_optimized.svg``. You can also " +"change the destination parameter to any relative or absolute path you'd like." +msgstr "" + +#: ../../docs/development/editor/creating_icons.rst:71 +msgid "" +"While this optimization step won't impact the icon's quality noticeably, it " +"will still remove editor-only information such as guides. Therefore, it's " +"recommended to keep the source SVG around if you need to make further " +"changes." +msgstr "" + +#: ../../docs/development/editor/creating_icons.rst:77 msgid "Integrating and sharing the icons" msgstr "" -#: ../../docs/development/editor/creating_icons.rst:57 +#: ../../docs/development/editor/creating_icons.rst:79 msgid "" "If you're contributing to the engine itself, you should make a pull request " "to add optimized icons to ``editor/icons`` in the main repository. Recompile " "the engine to make it pick up new icons for classes." msgstr "" -#: ../../docs/development/editor/creating_icons.rst:61 +#: ../../docs/development/editor/creating_icons.rst:83 msgid "" "It's also possible to create custom icons within a module. If you're " "creating your own module and don't plan to integrate it with Godot, you " @@ -79965,28 +81151,28 @@ msgid "" "within the editor as they can be self-contained." msgstr "" -#: ../../docs/development/editor/creating_icons.rst:66 +#: ../../docs/development/editor/creating_icons.rst:88 msgid "" "For specific instructions on how to create module icons, refer to :ref:" "`Creating custom module icons`." msgstr "" -#: ../../docs/development/editor/creating_icons.rst:72 -msgid "If icons don't appear in the editor make sure that:" +#: ../../docs/development/editor/creating_icons.rst:94 +msgid "If icons don't appear in the editor, make sure that:" msgstr "" -#: ../../docs/development/editor/creating_icons.rst:74 +#: ../../docs/development/editor/creating_icons.rst:96 msgid "" "Each icon's filename matches the naming requirement as described previously." msgstr "" -#: ../../docs/development/editor/creating_icons.rst:76 +#: ../../docs/development/editor/creating_icons.rst:98 msgid "" "``modules/svg`` is enabled (it should be enabled by default). Without it, " "icons won't appear in the editor at all." msgstr "" -#: ../../docs/development/editor/creating_icons.rst:82 +#: ../../docs/development/editor/creating_icons.rst:104 msgid "" "`editor/icons `__" @@ -79996,6 +81182,25 @@ msgstr "" msgid "Godot file formats" msgstr "" +#: ../../docs/development/file_formats/gdscript_grammar.rst:4 +msgid "GDScript grammar" +msgstr "" + +#: ../../docs/development/file_formats/gdscript_grammar.rst:6 +msgid "" +"This is the formal grammar of GDScript written in `EBNF `_, for reference " +"purposes." +msgstr "" + +#: ../../docs/development/file_formats/gdscript_grammar.rst:9 +msgid "" +"This grammar is descriptive only, derived from the reference documentation " +"and current implementation. The GDScript parser is **not** generated from a " +"grammar definition. Inconsistencies here likely mean an error in this " +"grammar, not a bug in GDScript." +msgstr "" + #: ../../docs/development/file_formats/tscn.rst:2 msgid "TSCN file format" msgstr "" @@ -80841,7 +82046,7 @@ msgstr "" #: ../../docs/community/contributing/best_practices_for_engine_contributors.rst:26 msgid "" "Many contributors are extremely creative and just enjoy the process of " -"designing abstract data structures, creating nice user interfaces,or simply " +"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." msgstr "" @@ -81230,21 +82435,23 @@ msgid "" "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, you will " -"have to check if your changes are also relevant for the ``master`` branch." +"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:65 +#: ../../docs/community/contributing/pr_workflow.rst:67 msgid "" -"There might be feature branches at time, usually meant to be merged into the " -"``master`` branch at some time." -msgstr "" - -#: ../../docs/community/contributing/pr_workflow.rst:69 -msgid "Forking and cloning" +"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 +msgid "Forking and cloning" +msgstr "" + +#: ../../docs/community/contributing/pr_workflow.rst:73 msgid "" "The first step is to *fork* the `godotengine/godot `_ repository on GitHub. To do so, you will need to have a " @@ -81252,13 +82459,13 @@ msgid "" "repository's GitHub page, you should see the \"Fork\" button as shown below:" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:78 +#: ../../docs/community/contributing/pr_workflow.rst:80 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:83 +#: ../../docs/community/contributing/pr_workflow.rst:85 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, " @@ -81267,56 +82474,57 @@ msgid "" "Linux." msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:88 +#: ../../docs/community/contributing/pr_workflow.rst:90 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:91 +#: ../../docs/community/contributing/pr_workflow.rst:93 msgid "To clone your fork from GitHub, use the following command:" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:97 +#: ../../docs/community/contributing/pr_workflow.rst:99 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:101 +#: ../../docs/community/contributing/pr_workflow.rst:103 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:108 +#: ../../docs/community/contributing/pr_workflow.rst:110 msgid "" "We will start by setting up a reference to the original repository that we " "forked:" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:115 +#: ../../docs/community/contributing/pr_workflow.rst:117 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." +"``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:120 +#: ../../docs/community/contributing/pr_workflow.rst:122 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:124 +#: ../../docs/community/contributing/pr_workflow.rst:126 msgid "" "*Branch it, pull it, code it, stage it, commit, push it, rebase it... " "technologic.*" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:127 +#: ../../docs/community/contributing/pr_workflow.rst:129 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 " @@ -81326,43 +82534,51 @@ msgid "" "working in Git." msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:135 +#: ../../docs/community/contributing/pr_workflow.rst:137 msgid "" -"In the following, we will assume 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:140 -msgid "Branching" +"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 +msgid "Branching" +msgstr "" + +#: ../../docs/community/contributing/pr_workflow.rst:144 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:154 +#: ../../docs/community/contributing/pr_workflow.rst:156 msgid "This command is equivalent:" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:161 +#: ../../docs/community/contributing/pr_workflow.rst:163 msgid "If you want to go back to the ``master`` branch, you'd use:" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:167 +#: ../../docs/community/contributing/pr_workflow.rst:169 msgid "" "You can see which branch you are currently on with the ``git branch`` " "command:" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:178 +#: ../../docs/community/contributing/pr_workflow.rst:179 +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 msgid "Updating your branch" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:180 +#: ../../docs/community/contributing/pr_workflow.rst:190 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 " @@ -81371,65 +82587,100 @@ msgid "" "merged in the meantime." msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:186 +#: ../../docs/community/contributing/pr_workflow.rst:196 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:194 +#: ../../docs/community/contributing/pr_workflow.rst:204 msgid "" -"However, if you had local commits, this method will create a so-called " -"\"merge commit\", and you will soon hear from fellow contributors that those " -"are not wanted in PRs. To update the branch without creating a merge commit, " -"you will have to use the ``--rebase`` option, so that your local commits are " -"replayed on top of the updated upstream ``master`` branch. It will " -"effectively modify the Git history of your branch, but that is for the " -"greater good." +"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:201 -msgid "Therefore, the command that you should (almost) always use is:" -msgstr "" - -#: ../../docs/community/contributing/pr_workflow.rst:208 +#: ../../docs/community/contributing/pr_workflow.rst:209 msgid "" -"If you have already pushed the merge commit without using ``rebase``, or " -"have made any other changes that have resulted in undesired history, you may " -"use a hard reset to revert to a specific commit and try again:" +"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 msgid "" -"Once you have done this, you may run ``--rebase`` to merge master correctly." -msgstr "" - -#: ../../docs/community/contributing/pr_workflow.rst:218 -msgid "" -"If you have already pushed the wrong commits to your remote branch, you will " -"have to force push by using ``git push --force``." +"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 msgid "" -"``git reset --hard`` can be a dangerous operation, especially if you have " -"untracked or uncommitted changes. However, if you have committed changes " -"that you reset using ``git reset --hard``, you may still be able to recover " -"them by resetting to a commit ID found with the ``git reflog`` command." +"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:228 +#: ../../docs/community/contributing/pr_workflow.rst:225 +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 +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 +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 ` for instructions." +msgstr "" + +#: ../../docs/community/contributing/pr_workflow.rst:241 +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 `` or ``git reset --" +"hard /`` (e.g. ``git reset --hard upstream/master``)." +msgstr "" + +#: ../../docs/community/contributing/pr_workflow.rst:245 +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 msgid "Making changes" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:230 +#: ../../docs/community/contributing/pr_workflow.rst:253 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:234 +#: ../../docs/community/contributing/pr_workflow.rst:257 msgid "" "By default, those changes are *unstaged*. The staging area is a layer " "between your working directory (where you make your modifications) and the " @@ -81439,45 +82690,45 @@ msgid "" "them with the ``git commit`` command." msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:241 +#: ../../docs/community/contributing/pr_workflow.rst:264 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:244 +#: ../../docs/community/contributing/pr_workflow.rst:267 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:246 +#: ../../docs/community/contributing/pr_workflow.rst:269 msgid "" "``git checkout -- `` will undo the unstaged changes to the given " "files." msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:248 +#: ../../docs/community/contributing/pr_workflow.rst:271 msgid "``git add `` will *stage* the changes on the listed files." msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:249 +#: ../../docs/community/contributing/pr_workflow.rst:272 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:251 +#: ../../docs/community/contributing/pr_workflow.rst:274 msgid "``git reset HEAD `` will *unstage* changes to the listed files." msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:252 +#: ../../docs/community/contributing/pr_workflow.rst:275 msgid "" "``git status`` will show you what are the currently staged and unstaged " "modifications." msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:254 +#: ../../docs/community/contributing/pr_workflow.rst:277 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 " @@ -81486,40 +82737,47 @@ msgid "" "write the log directly." msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:259 +#: ../../docs/community/contributing/pr_workflow.rst:282 +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 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:261 +#: ../../docs/community/contributing/pr_workflow.rst:287 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:264 +#: ../../docs/community/contributing/pr_workflow.rst:290 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:267 +#: ../../docs/community/contributing/pr_workflow.rst:293 msgid "Here's how the shell history could look like on our example:" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:299 +#: ../../docs/community/contributing/pr_workflow.rst:325 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:304 +#: ../../docs/community/contributing/pr_workflow.rst:330 msgid "Pushing changes to a remote" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:306 +#: ../../docs/community/contributing/pr_workflow.rst:332 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 " @@ -81527,43 +82785,43 @@ msgid "" "remote branch to share them with the world. The syntax for this is:" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:315 +#: ../../docs/community/contributing/pr_workflow.rst:341 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:323 +#: ../../docs/community/contributing/pr_workflow.rst:349 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:328 +#: ../../docs/community/contributing/pr_workflow.rst:354 msgid "Issuing a pull request" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:330 +#: ../../docs/community/contributing/pr_workflow.rst:356 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." +"upstream ``master`` branch)." msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:337 +#: ../../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 " +"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 :)" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:343 +#: ../../docs/community/contributing/pr_workflow.rst:369 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 " @@ -81571,70 +82829,108 @@ msgid "" "request\", and tadaa!" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:349 +#: ../../docs/community/contributing/pr_workflow.rst:375 msgid "Modifying a pull request" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:351 +#: ../../docs/community/contributing/pr_workflow.rst:377 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:355 +#: ../../docs/community/contributing/pr_workflow.rst:381 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:370 -msgid "That should do the trick, but..." -msgstr "" - -#: ../../docs/community/contributing/pr_workflow.rst:373 -msgid "Mastering the PR workflow: the rebase" -msgstr "" - -#: ../../docs/community/contributing/pr_workflow.rst:375 +#: ../../docs/community/contributing/pr_workflow.rst:396 msgid "" -"On the situation outlined above, your fellow contributors who are " -"particularly pedantic regarding the Git history might ask your to *rebase* " -"your branch to *squash* or *meld* the last two commits together (i.e. the " -"two related to the project manager), as the second commit basically fixes an " -"issue in the first one." +"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:380 +#: ../../docs/community/contributing/pr_workflow.rst:426 +msgid "The interactive rebase" +msgstr "" + +#: ../../docs/community/contributing/pr_workflow.rst:428 msgid "" -"Once the PR is merged, it is not relevant for a changelog reader that the PR " -"author made mistakes; instead, we want to keep only commits that bring from " -"one working state to another working state." +"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:384 +#: ../../docs/community/contributing/pr_workflow.rst:433 msgid "" -"To squash those two commits together, 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 :)" +"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:389 +#: ../../docs/community/contributing/pr_workflow.rst:438 +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 msgid "" "We will use the *interactive rebase* ``git rebase -i`` to do this. This " -"command takes a commit hash as argument, and will let you modify all commits " -"between that commit hash and the last one of the branch, the so-called " -"*HEAD*. In our example, we want to act on the last two commits, so we will " -"do:" +"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:400 -msgid "This will open a text editor with:" +#: ../../docs/community/contributing/pr_workflow.rst:448 +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:407 +#: ../../docs/community/contributing/pr_workflow.rst:456 +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 +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 __` to " +"configure your favorite one) with something which may look like this:" +msgstr "" + +#: ../../docs/community/contributing/pr_workflow.rst:480 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 " @@ -81645,7 +82941,7 @@ msgid "" "\"Fix a typo\" commit, so we use:" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:420 +#: ../../docs/community/contributing/pr_workflow.rst:493 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`` " @@ -81653,16 +82949,7 @@ msgid "" "previous commits." msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:425 -msgid "" -"You could have avoided this rebase by using ``git commit --amend`` when " -"fixing the typo. This command will write the staged changes directly into " -"the *last* commit (``HEAD``), instead of creating a new commit like we did " -"in this example. So it is equivalent to what we did with a new commit and " -"then a rebase to mark it as \"fixup\"." -msgstr "" - -#: ../../docs/community/contributing/pr_workflow.rst:431 +#: ../../docs/community/contributing/pr_workflow.rst:498 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 " @@ -81670,25 +82957,25 @@ msgid "" "it will raise an error:" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:445 +#: ../../docs/community/contributing/pr_workflow.rst:512 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:453 +#: ../../docs/community/contributing/pr_workflow.rst:520 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:458 +#: ../../docs/community/contributing/pr_workflow.rst:525 msgid "Deleting a Git branch" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:460 +#: ../../docs/community/contributing/pr_workflow.rst:527 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 " @@ -81696,20 +82983,26 @@ msgid "" "once for the local branch and another for the remote branch on GitHub." msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:465 +#: ../../docs/community/contributing/pr_workflow.rst:532 msgid "To delete our better project manager branch locally, use this command:" msgstr "" -#: ../../docs/community/contributing/pr_workflow.rst:471 +#: ../../docs/community/contributing/pr_workflow.rst:538 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:474 +#: ../../docs/community/contributing/pr_workflow.rst:541 msgid "Next, to delete the remote branch on GitHub use this command:" msgstr "" +#: ../../docs/community/contributing/pr_workflow.rst:547 +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 "" + #: ../../docs/community/contributing/bisecting_regressions.rst:4 msgid "Bisecting regressions" msgstr "" @@ -82466,7 +83759,7 @@ msgid "" msgstr "" #: ../../docs/community/contributing/documentation_guidelines.rst:14 -#: ../../docs/community/contributing/updating_the_class_reference.rst:21 +#: ../../docs/community/contributing/updating_the_class_reference.rst:25 msgid "How to contribute" msgstr "" @@ -83268,13 +84561,19 @@ msgstr "" #: ../../docs/community/contributing/updating_the_class_reference.rst:8 msgid "" +"This guide also is available as a `video tutorial on YouTube `_." +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 `. " "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:11 +#: ../../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 " @@ -83282,7 +84581,7 @@ msgid "" "contribute." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:14 +#: ../../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 " @@ -83290,44 +84589,45 @@ msgid "" "on the same thing too." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:17 +#: ../../docs/community/contributing/updating_the_class_reference.rst:21 msgid "" -"This guide is available as a `video tutorial on YouTube `_." +"Not sure where to start contributing? Take a look at the current class " +"reference completion status `here `__." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:23 +#: ../../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/ `_." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:25 +#: ../../docs/community/contributing/updating_the_class_reference.rst:29 msgid "There are 5 steps to update the class reference (full guide below):" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:27 +#: ../../docs/community/contributing/updating_the_class_reference.rst:31 msgid "Fork `Godot's repository `_" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:28 +#: ../../docs/community/contributing/updating_the_class_reference.rst:32 msgid "Clone your fork on your computer" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:29 +#: ../../docs/community/contributing/updating_the_class_reference.rst:33 msgid "Edit the class file in ``doc/classes/`` to write documentation" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:30 +#: ../../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:31 +#: ../../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:33 +#: ../../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 `, " @@ -83335,130 +84635,130 @@ msgid "" "repository." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:36 +#: ../../docs/community/contributing/updating_the_class_reference.rst:40 msgid "Get started with GitHub" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:38 +#: ../../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:40 +#: ../../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:41 +#: ../../docs/community/contributing/updating_the_class_reference.rst:45 msgid "Keep your fork up to date with other contributors" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:42 +#: ../../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:44 +#: ../../docs/community/contributing/updating_the_class_reference.rst:48 msgid "" -"If you're new to git, the version-control system Godot uses, go through " +"If you're new to Git, the version control system Godot uses, go through " "`GitHub's interactive guide `_. " "You'll learn some essential vocabulary and get a sense for the tool." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:47 +#: ../../docs/community/contributing/updating_the_class_reference.rst:51 msgid "Fork Godot" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:49 +#: ../../docs/community/contributing/updating_the_class_reference.rst:53 msgid "Fork the Godot Engine into a GitHub repository of your own." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:51 +#: ../../docs/community/contributing/updating_the_class_reference.rst:55 msgid "Clone the repository on your computer:" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:57 +#: ../../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." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:63 +#: ../../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:66 +#: ../../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:68 +#: ../../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:70 +#: ../../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:76 +#: ../../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:82 +#: ../../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:92 +#: ../../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:98 +#: ../../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:100 +#: ../../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:107 +#: ../../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:109 +#: ../../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:118 +#: ../../docs/community/contributing/updating_the_class_reference.rst:122 msgid "" "If you're feeling lost by now, come to our `IRC channels `_ and ask for help. Experienced git " "users will give you a hand." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:121 +#: ../../docs/community/contributing/updating_the_class_reference.rst:125 msgid "Updating the documentation template" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:123 +#: ../../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 " @@ -83467,46 +84767,46 @@ msgid "" "command (assuming 64-bit Linux):" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:129 +#: ../../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 " +"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:" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:136 +#: ../../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:138 +#: ../../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:141 +#: ../../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:143 +#: ../../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:152 +#: ../../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:156 +#: ../../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 " +"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 " @@ -83515,17 +84815,17 @@ msgid "" "from GitHub. And they're very important in the docs." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:158 +#: ../../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:161 +#: ../../docs/community/contributing/updating_the_class_reference.rst:165 msgid "How to edit class XML" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:163 +#: ../../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 " @@ -83533,25 +84833,25 @@ msgid "" "and updates the XML automatically." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:165 +#: ../../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:167 +#: ../../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 `, run the editor and open the help for the page you modified." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:170 +#: ../../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:172 +#: ../../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 " @@ -83560,35 +84860,35 @@ msgid "" "learn how they work in Godot's source code, and fill their ." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:174 +#: ../../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:176 +#: ../../docs/community/contributing/updating_the_class_reference.rst:180 msgid "" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:177 +#: ../../docs/community/contributing/updating_the_class_reference.rst:181 msgid "" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:178 +#: ../../docs/community/contributing/updating_the_class_reference.rst:182 msgid "" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:179 +#: ../../docs/community/contributing/updating_the_class_reference.rst:183 msgid "" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:180 +#: ../../docs/community/contributing/updating_the_class_reference.rst:184 msgid "" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:181 +#: ../../docs/community/contributing/updating_the_class_reference.rst:185 msgid "" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:183 +#: ../../docs/community/contributing/updating_the_class_reference.rst:187 msgid "" "Write in a clear and simple language. Always follow the :ref:`writing " "guidelines ` to keep your descriptions short " @@ -83596,243 +84896,259 @@ msgid "" "line in the XML file will result in a new paragraph." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:185 +#: ../../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:224 +#: ../../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:228 +#: ../../docs/community/contributing/updating_the_class_reference.rst:232 msgid "Improve formatting with BBcode style tags" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:230 +#: ../../docs/community/contributing/updating_the_class_reference.rst:234 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:233 +#: ../../docs/community/contributing/updating_the_class_reference.rst:237 msgid "Effect" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:233 +#: ../../docs/community/contributing/updating_the_class_reference.rst:237 msgid "Result" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:235 +#: ../../docs/community/contributing/updating_the_class_reference.rst:239 msgid "[Class]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:235 +#: ../../docs/community/contributing/updating_the_class_reference.rst:239 msgid "Link a class" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:235 +#: ../../docs/community/contributing/updating_the_class_reference.rst:239 msgid "Move the [Sprite]." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:235 +#: ../../docs/community/contributing/updating_the_class_reference.rst:239 msgid "Move the :ref:`class_sprite`." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:237 +#: ../../docs/community/contributing/updating_the_class_reference.rst:241 msgid "[method methodname]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:237 +#: ../../docs/community/contributing/updating_the_class_reference.rst:241 msgid "Link to a method in this class" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:237 +#: ../../docs/community/contributing/updating_the_class_reference.rst:241 msgid "Call [method hide]." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:237 -#: ../../docs/community/contributing/updating_the_class_reference.rst:239 +#: ../../docs/community/contributing/updating_the_class_reference.rst:241 +#: ../../docs/community/contributing/updating_the_class_reference.rst:243 msgid "See :ref:`hide `." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:239 +#: ../../docs/community/contributing/updating_the_class_reference.rst:243 msgid "[method Class.methodname]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:239 +#: ../../docs/community/contributing/updating_the_class_reference.rst:243 msgid "Link to another class's method" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:239 +#: ../../docs/community/contributing/updating_the_class_reference.rst:243 msgid "Call [method Spatial.hide]." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:241 +#: ../../docs/community/contributing/updating_the_class_reference.rst:245 msgid "[member membername]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:241 +#: ../../docs/community/contributing/updating_the_class_reference.rst:245 msgid "Link to a member in this class" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:241 +#: ../../docs/community/contributing/updating_the_class_reference.rst:245 msgid "Get [member scale]." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:241 -#: ../../docs/community/contributing/updating_the_class_reference.rst:243 +#: ../../docs/community/contributing/updating_the_class_reference.rst:245 +#: ../../docs/community/contributing/updating_the_class_reference.rst:247 msgid "Get :ref:`scale `." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:243 +#: ../../docs/community/contributing/updating_the_class_reference.rst:247 msgid "[member Class.membername]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:243 +#: ../../docs/community/contributing/updating_the_class_reference.rst:247 msgid "Link to another class's member" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:243 +#: ../../docs/community/contributing/updating_the_class_reference.rst:247 msgid "Get [member Node2D.scale]." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:245 +#: ../../docs/community/contributing/updating_the_class_reference.rst:249 msgid "[signal signalname]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:245 +#: ../../docs/community/contributing/updating_the_class_reference.rst:249 msgid "Link to a signal in this class" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:245 +#: ../../docs/community/contributing/updating_the_class_reference.rst:249 msgid "Emit [signal renamed]." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:245 -#: ../../docs/community/contributing/updating_the_class_reference.rst:247 +#: ../../docs/community/contributing/updating_the_class_reference.rst:249 +#: ../../docs/community/contributing/updating_the_class_reference.rst:251 msgid "Emit :ref:`renamed `." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:247 +#: ../../docs/community/contributing/updating_the_class_reference.rst:251 msgid "[signal Class.signalname]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:247 +#: ../../docs/community/contributing/updating_the_class_reference.rst:251 msgid "Link to another class's signal" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:247 +#: ../../docs/community/contributing/updating_the_class_reference.rst:251 msgid "Emit [signal Node.renamed]." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:249 +#: ../../docs/community/contributing/updating_the_class_reference.rst:253 msgid "[b] [/b]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:249 +#: ../../docs/community/contributing/updating_the_class_reference.rst:253 msgid "Bold" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:249 +#: ../../docs/community/contributing/updating_the_class_reference.rst:253 msgid "Some [b]bold[/b] text." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:249 +#: ../../docs/community/contributing/updating_the_class_reference.rst:253 msgid "Some **bold** text." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:251 +#: ../../docs/community/contributing/updating_the_class_reference.rst:255 msgid "[i] [/i]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:251 +#: ../../docs/community/contributing/updating_the_class_reference.rst:255 msgid "Italic" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:251 +#: ../../docs/community/contributing/updating_the_class_reference.rst:255 msgid "Some [i]italic[/i] text." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:251 +#: ../../docs/community/contributing/updating_the_class_reference.rst:255 msgid "Some *italic* text." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:253 +#: ../../docs/community/contributing/updating_the_class_reference.rst:257 msgid "[code] [/code]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:253 +#: ../../docs/community/contributing/updating_the_class_reference.rst:257 msgid "Monospace" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:253 +#: ../../docs/community/contributing/updating_the_class_reference.rst:257 msgid "Some [code]monospace[/code] text." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:253 +#: ../../docs/community/contributing/updating_the_class_reference.rst:257 msgid "Some ``monospace`` text." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:255 +#: ../../docs/community/contributing/updating_the_class_reference.rst:259 +msgid "[kbd] [/kbd]" +msgstr "" + +#: ../../docs/community/contributing/updating_the_class_reference.rst:259 +msgid "Keyboard/mouse shortcut" +msgstr "" + +#: ../../docs/community/contributing/updating_the_class_reference.rst:259 +msgid "Some [kbd]Ctrl + C[/kbd] key." +msgstr "" + +#: ../../docs/community/contributing/updating_the_class_reference.rst:259 +msgid "Some :kbd:`Ctrl + C` key." +msgstr "" + +#: ../../docs/community/contributing/updating_the_class_reference.rst:261 msgid "[codeblock] [/codeblock]" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:255 +#: ../../docs/community/contributing/updating_the_class_reference.rst:261 msgid "Multiline preformatted block" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:255 +#: ../../docs/community/contributing/updating_the_class_reference.rst:261 msgid "*See below.*" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:258 +#: ../../docs/community/contributing/updating_the_class_reference.rst:264 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:268 +#: ../../docs/community/contributing/updating_the_class_reference.rst:274 msgid "Will display as:" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:278 +#: ../../docs/community/contributing/updating_the_class_reference.rst:284 msgid "I don't know what this method does!" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:280 +#: ../../docs/community/contributing/updating_the_class_reference.rst:286 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:282 +#: ../../docs/community/contributing/updating_the_class_reference.rst:288 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 `__ and on IRC (freenode, #godotengine)." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:286 +#: ../../docs/community/contributing/updating_the_class_reference.rst:292 msgid "Localization" msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:288 +#: ../../docs/community/contributing/updating_the_class_reference.rst:294 msgid "" "The documentation can be translated in any language on `Hosted Weblate " "`__." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:291 +#: ../../docs/community/contributing/updating_the_class_reference.rst:297 msgid "" "Translated strings are synced manually by documentation maintainers in the " "`godot-docs-l10n `__ " "repository." msgstr "" -#: ../../docs/community/contributing/updating_the_class_reference.rst:295 +#: ../../docs/community/contributing/updating_the_class_reference.rst:301 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 " @@ -84137,41 +85453,47 @@ msgid "" "list=PLda3VoSoc_TSBBOBYwcmlamF1UrjVtccZ>`_ (3D, GDScript)." msgstr "" -#: ../../docs/community/tutorials.rst:40 +#: ../../docs/community/tutorials.rst:38 +msgid "" +"`Gonkee `_ (2D, " +"3D, GDScript, Shaders)." +msgstr "" + +#: ../../docs/community/tutorials.rst:41 msgid "Text tutorials" msgstr "" -#: ../../docs/community/tutorials.rst:42 +#: ../../docs/community/tutorials.rst:43 msgid "`Godot Recipes by KidsCanCode `__" msgstr "" -#: ../../docs/community/tutorials.rst:43 +#: ../../docs/community/tutorials.rst:44 msgid "`Steincodes `__" msgstr "" -#: ../../docs/community/tutorials.rst:46 +#: ../../docs/community/tutorials.rst:47 msgid "Devlogs" msgstr "" -#: ../../docs/community/tutorials.rst:48 +#: ../../docs/community/tutorials.rst:49 msgid "" "`Andrea Catania (Physics & AI) `_" msgstr "" -#: ../../docs/community/tutorials.rst:49 +#: ../../docs/community/tutorials.rst:50 msgid "" "`Bastiaan Olij (AR & VR) `_" msgstr "" -#: ../../docs/community/tutorials.rst:54 +#: ../../docs/community/tutorials.rst:55 msgid "" "`awesome-godot: A curated list of resources by Calinou `_" msgstr "" -#: ../../docs/community/tutorials.rst:55 +#: ../../docs/community/tutorials.rst:56 msgid "" "`Zeef Godot Engine: A curated directory of resources by Andre Schmitz " "`_"